c#网页开发学习(二)
2013-03-14 18:52
204 查看
c#网页开发二
【js文件】
存储javascript代码的文件,javascript代码应该放在.js文件中,便于管理。
【c#和javascript交互】
1,在后台C#代码中调用javascript方法:
* javascript代码:
<script type="text/javascript" language="javascript">
function test()
{
alert("oec2003");
return false;
}
</script>
* c#代码:
protected void Button1_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "clear", "<script>test()</script>");
}
2, javascript中调用c#方法
1>, 如果c#中的方法有返回值,可以用下面方法
c#代码
public string GetAuthStatus()
{
ViewState["Auth"] = "Red";
return ViewState["Auth"].ToString();
}
javascript代码
<script type="text/javascript" language="javascript">
function getAuth()
{
var authStatus = "<%=GetAuthStatus()%>";
return authStatus;
}
</script>
2>, (暂未明白)如果在javascript调用的c#方法没有返回值,可以在一面中放一个button,然后在button的单击事件中去写想做的事情,在客户端的脚本中写下如下代码就可以了document.all("button1").click();
【标准服务器控件】
【Label】 在页面上显示静态文本的标签控件 相当于HTML的<div>元素。
如:
<div>
<asp:Label ID="Label1" runat="server" Text="所要显示的文字"></asp:Label>
</div>
【Button】
1,相关代码
<div>
<asp:Button ID="Button1" runat="server" Text="确定" />
</div>
2, click和Command事件
click事件:双击自动生成button_click事件,在里面添写代码即可。
command事件:通过关联按钮的CommandName属性,使按钮可以自动寻找并调用特定的方法,还可以通过CommandArgument属性向该方法传递参数。优点:当有多个Button按钮,按钮的操作相似,如果采用click事件,则每个button就必须单独实现click。采用Command事件用可通过一个公共的处理方法来完成。如:
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="递增显示数字" CommandName="ShowNumbers_Asc" CommandArgument="Asc" />
<asp:Button ID="Button3" runat="server" Text="递减显示字母" CommandName="ShowLetters_Desc" CommandArgument="Desc" />
</div>
</form>
Command事件到Button_Command()方法:在属性里,将两个按钮的Command事件都关联到Button_Command方法即可。
上面两个按钮的公共command方法定义如下:
protected void Button_Command(object sender, CommandEventArgs e)
{
//根据按钮的CommandName进行分支
switch (e.CommandName)
{
case "ShowNumbers_Asc":
//输出一行说明信息
Page.Response.Write("您单击了按钮“递增显示数字”!<br>");
//调用不同的方法,并传递CommandArgument参数
ShowNumbers(e.CommandArgument);
break;
case "ShowLetters_Desc":
Page.Response.Write("您单击了按钮“递减显示字母”!<br>");
ShowLetters(e.CommandArgument);
break;
default:
break;
}
}
【TextBox】
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
</form>
【CheckBox】:复选框
<div>
<asp:CheckBox ID="CheckBox1" runat="server" />
</div>
事件,CheckedChanged:当Checked属性值更改时触发。
【属性和事件】
一般C#不需要直接手动写代码,右击在属性和事件中直接选择就行。
比如:上面button的单击事件,可以双击自动生成button_click,也可自己在属性中定义。Command事件也是这样。上面的CheckBox的CheckedChanged事件也是可选择的,不过一般会有默认的事件名,一般采用这些自动的事件名即可。
【RadioButton】:单选框
其它相应事件,可直接查相应文档即可。不再一一举出。
【容器控件】
【Panel】其他控件的容器。作为容器,它可以统一控制其内部的一组控件,比如隐藏/显示等。
<div>
<asp:Panel id="Panel1" runat="server" >
<asp:Button id="Button1" runat="server" Text="Button" />
</asp:Panel>
</div>
===属性===
DefaultButton 获取或设置Panel控件中包含的默认按钮的标识符
Direction 获取或设置在Panel控件中显示包含文本的控件的方向
ScrollBars 获取或设置Panel控件中滚动条的可见性和位置
HorizontalAlign 获取或设置面板中的控件的水平对齐方式
Visible 获取或设置一个值,该值指示面板,及其内部的所有控件是否呈现在页面上
==========
注,以下先设置一个控件,然后添加到面板中去。
label1.BorderWidth=1; //设置标签Border线条宽度
label1.BorderColor=System.Drawing.Color.Black;
Panel1.Controls.Add(label1); //将标签添加今Panel中
Panel1.Controls.Add(new LiteralControl("<br>"));//在Panel中添加一个"<br>"
【Table】主要功能是控制页面上元素的布局。作为Web服务器控件,Table可以根据不同的用户响应,动态生成表格的结构。
<asp:Table id="Table1" runat="server">
<asp:TableRow>
<asp:TableCell></asp:TableCell>
<asp:TableCell></asp:TableCell>
</asp:TableRow>
</asp:Table>
注,初始添加的Table不包含行,可以通过编辑其Rows属性来添加
【验证控件】
RequiredFieldValidator 要求用户必真,如“用户名”项
CompareValidator 将用户的输入与常数、另一个控件或数据库值进行比较,如:“重复密码”项
RangeValidator 确保用户输入的值在指定的上下限范围之内。如:“年龄”项
RegularExpressionValidator 确保用户输入匹配正则表达式定义的模式,如:“电子邮件”项
CustomValidator 确保用户输入的内容符合自定义的验证逻辑,如:“同意”单选按钮
ValidationSummary 在网页、消息框或在这两者中内联显示所有验证错误的摘要,如:“提交”按钮下面的所有出错信息
【RequiredFieldValidator】
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Text="TextBox1未填时的报错信息"
ControlToValidate="TextBox1">
</asp:RequiredFieldValidator>
</div>
属性:
ControlToValidate:选项可选择其监督的控件
ErrorMessage:必须结合ValidationSummary控件使用,验证失败时在后者中显示的错误信息的文本。
Text:获取或设置验证失败时验证控件中显示的文本。
【用户控件】
当一个Web窗体被当作Server控件使用时,这个Web窗体便是用户控件。
1,创建用户控件
【添加新项】命令,弹出的“添加新项”对话框,选择“Web用户控件”图标。然后在其中添加内置的服务器控件。
创建的用户控件此时还没有外观和属性。
2,添加用户控件
1> 首先在需要引入用户控件的Web页面内,使用“<%@ Register…%>”指令注册控件。在本例中,需要将下面的代码添加在Default的HTML代码的首行:
<%@ Register TagPrefix="uc" TagName="MyDataInput" Src="~/MyDataInput.ascx" %>
其中,TagPrefix确定了用户控件的命名空间,TagName是这个用户的名字,它们的属性值可以随便取,但是一旦取定
2> 引用控件: 在Web页面中引入用户控件后,就可以以同Web服务器控件同样的方式使用了,方法是在需要使用控件的地方写入代码:
<TagPrefix : TagName runat="server" />
本例中,将在Default的HTML中添加如下代码:
<div>
<uc:MyDataInput ID="MyDataInput1" runat="server" />
</div>
3, 定义用户控件属性
(1)添加一个Text属性,这个属性的值即是用户控件中文本框中的值。
首先在.cs文件中写入如下代码:
public string Text
{
get{ return this.TextBoxDate.Text; }
set{ this.TextBoxDate.Text= value; }
}
(2)在Default.aspx页面引用用户控件的地方,可以直接声明其属性的值:
<div>
<uc:MyDataInput ID="MyDataInput1" Text="2007-2-2" runat="server" />
</div>
(3)在Default.aspx页面的加载事件中,利用Text属性输出文本框中的日期数据:
protected void Page_Load(object sender, EventArgs e)
{
Page.Response.Write(this.MyDataInput1.Text + "<br />");
}
4,定义用户控件事件
(1)首先定义按钮单击事件。双击用户控件MyDateInput.ascs中的Button1控件,在其单击事件中输入以下代码:
代码(MyDateInput用户控件的按钮单击事件:MyDateInput.ascx.cs)
/// <summary>
/// “...”按钮单击事件
/// </summary>
protected void OnClick(object sender, EventArgs e)
{
PanelCalendar.Visible = true;
}
代码功能很简单,就是显示包含日期控件的Panel控件,这样的效果就是当单击“…”按钮时,日期控件就会跳出来,以供用户选择日期。
(2)下面实现日历控件的选择事件。双击日历控件,在其选择事件中实现如下代码:
代码10-4 MyDateInput用户控件的日历选择事件:MyDateInput.ascx.cs
/// <summary>
/// 日期选择事件
/// </summary>
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBoxDate.Text = Calendar1.SelectedDate.ToShortDateString();
PanelCalendar.Visible = false;
}
代码一方面隐藏掉日期控件,同时为Text赋值为选中的日期。
【注意】通过上面的例子可以看出,在用户控件中处理事件的方法,同在普通的Web页面中处理方法是一样的。
【数据绑定控件】
【GridView】
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
1, GridView中的列类型
BoundField:GridView控件中作为文本显示的字段。GridView为数据源中的每一列自动创建一个BoundField列,其顺序与数据源中的字段顺序相同,并且列的标题即为该列在数据源中的列名。
CheckBoxField:GridView控件中以复选框显示的布尔型字段。
HyperLinkField:控件中显示为超链接的字段,超级链接列。
ImageField:图象列,列中显示对应数据库中的图象。
ButtonField:按钮列,按钮的类型可以为Button、Image、Link。
CommandField:一个特殊列,其中显示了用于在GridView控件中执行选择、编辑、插入或删除操作的命令按钮。这些命令按钮不需要编写任何代码就可以实现相应的操作。
TemplateField:模板列,列中的各项内容根据按照指定的模板显示,常用于显示控件等。
2, 自动生成数据列:操作相关,很麻烦。
【列表控年】
1,把DataSet绑定到DropDownList
2,把DataReader绑定到ListBox
3,把DataTable绑定到CheckBoxList
4,把HashTable绑定到RadioButtonList
【站点导航控件】
【登陆控件】
【HTML 服务器控件】:
属于 System.Web.UI.HtmlControls 命名空间的 ASP.NET 服务器控件。HTML 服务器控件直接映射到 HTML 元素,并在 ASP.NET 页中声明为一个由 runat="server" 属性标记的 HTML 元素,例如 <button runat="server" />。与 Web 服务器控件相比,HTML 服务器控件没有 asp 标记前缀。
--?还是没搞懂什么意思?与直接拖个框,再点击生成Button1_Click,其aspx中代码也是:<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />也同样有: runat="server" ???
按王石的意思,估计是:与标准控件很像,只是兼容了javascript方法,直接点击能生成javascript点击方法,如果不想生成javascript方法,可以右击进行生成???
注意在html中,只有javascript脚本,而没有<asp>等这种asp代码,这些代码都经过服务器解析后,生成具体的代码发送到客户端。
??ajax如何与C#绑定在一起?
【js文件】
存储javascript代码的文件,javascript代码应该放在.js文件中,便于管理。
【c#和javascript交互】
1,在后台C#代码中调用javascript方法:
* javascript代码:
<script type="text/javascript" language="javascript">
function test()
{
alert("oec2003");
return false;
}
</script>
* c#代码:
protected void Button1_Click(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript(this.GetType(), "clear", "<script>test()</script>");
}
2, javascript中调用c#方法
1>, 如果c#中的方法有返回值,可以用下面方法
c#代码
public string GetAuthStatus()
{
ViewState["Auth"] = "Red";
return ViewState["Auth"].ToString();
}
javascript代码
<script type="text/javascript" language="javascript">
function getAuth()
{
var authStatus = "<%=GetAuthStatus()%>";
return authStatus;
}
</script>
2>, (暂未明白)如果在javascript调用的c#方法没有返回值,可以在一面中放一个button,然后在button的单击事件中去写想做的事情,在客户端的脚本中写下如下代码就可以了document.all("button1").click();
【标准服务器控件】
【Label】 在页面上显示静态文本的标签控件 相当于HTML的<div>元素。
如:
<div>
<asp:Label ID="Label1" runat="server" Text="所要显示的文字"></asp:Label>
</div>
【Button】
1,相关代码
<div>
<asp:Button ID="Button1" runat="server" Text="确定" />
</div>
2, click和Command事件
click事件:双击自动生成button_click事件,在里面添写代码即可。
command事件:通过关联按钮的CommandName属性,使按钮可以自动寻找并调用特定的方法,还可以通过CommandArgument属性向该方法传递参数。优点:当有多个Button按钮,按钮的操作相似,如果采用click事件,则每个button就必须单独实现click。采用Command事件用可通过一个公共的处理方法来完成。如:
<form id="form1" runat="server">
<div>
<asp:Button ID="Button1" runat="server" Text="递增显示数字" CommandName="ShowNumbers_Asc" CommandArgument="Asc" />
<asp:Button ID="Button3" runat="server" Text="递减显示字母" CommandName="ShowLetters_Desc" CommandArgument="Desc" />
</div>
</form>
Command事件到Button_Command()方法:在属性里,将两个按钮的Command事件都关联到Button_Command方法即可。
上面两个按钮的公共command方法定义如下:
protected void Button_Command(object sender, CommandEventArgs e)
{
//根据按钮的CommandName进行分支
switch (e.CommandName)
{
case "ShowNumbers_Asc":
//输出一行说明信息
Page.Response.Write("您单击了按钮“递增显示数字”!<br>");
//调用不同的方法,并传递CommandArgument参数
ShowNumbers(e.CommandArgument);
break;
case "ShowLetters_Desc":
Page.Response.Write("您单击了按钮“递减显示字母”!<br>");
ShowLetters(e.CommandArgument);
break;
default:
break;
}
}
【TextBox】
<form id="Form1" method="post" runat="server">
<asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
</form>
【CheckBox】:复选框
<div>
<asp:CheckBox ID="CheckBox1" runat="server" />
</div>
事件,CheckedChanged:当Checked属性值更改时触发。
【属性和事件】
一般C#不需要直接手动写代码,右击在属性和事件中直接选择就行。
比如:上面button的单击事件,可以双击自动生成button_click,也可自己在属性中定义。Command事件也是这样。上面的CheckBox的CheckedChanged事件也是可选择的,不过一般会有默认的事件名,一般采用这些自动的事件名即可。
【RadioButton】:单选框
其它相应事件,可直接查相应文档即可。不再一一举出。
【容器控件】
【Panel】其他控件的容器。作为容器,它可以统一控制其内部的一组控件,比如隐藏/显示等。
<div>
<asp:Panel id="Panel1" runat="server" >
<asp:Button id="Button1" runat="server" Text="Button" />
</asp:Panel>
</div>
===属性===
DefaultButton 获取或设置Panel控件中包含的默认按钮的标识符
Direction 获取或设置在Panel控件中显示包含文本的控件的方向
ScrollBars 获取或设置Panel控件中滚动条的可见性和位置
HorizontalAlign 获取或设置面板中的控件的水平对齐方式
Visible 获取或设置一个值,该值指示面板,及其内部的所有控件是否呈现在页面上
==========
注,以下先设置一个控件,然后添加到面板中去。
label1.BorderWidth=1; //设置标签Border线条宽度
label1.BorderColor=System.Drawing.Color.Black;
Panel1.Controls.Add(label1); //将标签添加今Panel中
Panel1.Controls.Add(new LiteralControl("<br>"));//在Panel中添加一个"<br>"
【Table】主要功能是控制页面上元素的布局。作为Web服务器控件,Table可以根据不同的用户响应,动态生成表格的结构。
<asp:Table id="Table1" runat="server">
<asp:TableRow>
<asp:TableCell></asp:TableCell>
<asp:TableCell></asp:TableCell>
</asp:TableRow>
</asp:Table>
注,初始添加的Table不包含行,可以通过编辑其Rows属性来添加
【验证控件】
RequiredFieldValidator 要求用户必真,如“用户名”项
CompareValidator 将用户的输入与常数、另一个控件或数据库值进行比较,如:“重复密码”项
RangeValidator 确保用户输入的值在指定的上下限范围之内。如:“年龄”项
RegularExpressionValidator 确保用户输入匹配正则表达式定义的模式,如:“电子邮件”项
CustomValidator 确保用户输入的内容符合自定义的验证逻辑,如:“同意”单选按钮
ValidationSummary 在网页、消息框或在这两者中内联显示所有验证错误的摘要,如:“提交”按钮下面的所有出错信息
【RequiredFieldValidator】
<div>
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" Text="TextBox1未填时的报错信息"
ControlToValidate="TextBox1">
</asp:RequiredFieldValidator>
</div>
属性:
ControlToValidate:选项可选择其监督的控件
ErrorMessage:必须结合ValidationSummary控件使用,验证失败时在后者中显示的错误信息的文本。
Text:获取或设置验证失败时验证控件中显示的文本。
【用户控件】
当一个Web窗体被当作Server控件使用时,这个Web窗体便是用户控件。
1,创建用户控件
【添加新项】命令,弹出的“添加新项”对话框,选择“Web用户控件”图标。然后在其中添加内置的服务器控件。
创建的用户控件此时还没有外观和属性。
2,添加用户控件
1> 首先在需要引入用户控件的Web页面内,使用“<%@ Register…%>”指令注册控件。在本例中,需要将下面的代码添加在Default的HTML代码的首行:
<%@ Register TagPrefix="uc" TagName="MyDataInput" Src="~/MyDataInput.ascx" %>
其中,TagPrefix确定了用户控件的命名空间,TagName是这个用户的名字,它们的属性值可以随便取,但是一旦取定
2> 引用控件: 在Web页面中引入用户控件后,就可以以同Web服务器控件同样的方式使用了,方法是在需要使用控件的地方写入代码:
<TagPrefix : TagName runat="server" />
本例中,将在Default的HTML中添加如下代码:
<div>
<uc:MyDataInput ID="MyDataInput1" runat="server" />
</div>
3, 定义用户控件属性
(1)添加一个Text属性,这个属性的值即是用户控件中文本框中的值。
首先在.cs文件中写入如下代码:
public string Text
{
get{ return this.TextBoxDate.Text; }
set{ this.TextBoxDate.Text= value; }
}
(2)在Default.aspx页面引用用户控件的地方,可以直接声明其属性的值:
<div>
<uc:MyDataInput ID="MyDataInput1" Text="2007-2-2" runat="server" />
</div>
(3)在Default.aspx页面的加载事件中,利用Text属性输出文本框中的日期数据:
protected void Page_Load(object sender, EventArgs e)
{
Page.Response.Write(this.MyDataInput1.Text + "<br />");
}
4,定义用户控件事件
(1)首先定义按钮单击事件。双击用户控件MyDateInput.ascs中的Button1控件,在其单击事件中输入以下代码:
代码(MyDateInput用户控件的按钮单击事件:MyDateInput.ascx.cs)
/// <summary>
/// “...”按钮单击事件
/// </summary>
protected void OnClick(object sender, EventArgs e)
{
PanelCalendar.Visible = true;
}
代码功能很简单,就是显示包含日期控件的Panel控件,这样的效果就是当单击“…”按钮时,日期控件就会跳出来,以供用户选择日期。
(2)下面实现日历控件的选择事件。双击日历控件,在其选择事件中实现如下代码:
代码10-4 MyDateInput用户控件的日历选择事件:MyDateInput.ascx.cs
/// <summary>
/// 日期选择事件
/// </summary>
protected void Calendar1_SelectionChanged(object sender, EventArgs e)
{
TextBoxDate.Text = Calendar1.SelectedDate.ToShortDateString();
PanelCalendar.Visible = false;
}
代码一方面隐藏掉日期控件,同时为Text赋值为选中的日期。
【注意】通过上面的例子可以看出,在用户控件中处理事件的方法,同在普通的Web页面中处理方法是一样的。
【数据绑定控件】
【GridView】
<div>
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
</div>
1, GridView中的列类型
BoundField:GridView控件中作为文本显示的字段。GridView为数据源中的每一列自动创建一个BoundField列,其顺序与数据源中的字段顺序相同,并且列的标题即为该列在数据源中的列名。
CheckBoxField:GridView控件中以复选框显示的布尔型字段。
HyperLinkField:控件中显示为超链接的字段,超级链接列。
ImageField:图象列,列中显示对应数据库中的图象。
ButtonField:按钮列,按钮的类型可以为Button、Image、Link。
CommandField:一个特殊列,其中显示了用于在GridView控件中执行选择、编辑、插入或删除操作的命令按钮。这些命令按钮不需要编写任何代码就可以实现相应的操作。
TemplateField:模板列,列中的各项内容根据按照指定的模板显示,常用于显示控件等。
2, 自动生成数据列:操作相关,很麻烦。
【列表控年】
1,把DataSet绑定到DropDownList
2,把DataReader绑定到ListBox
3,把DataTable绑定到CheckBoxList
4,把HashTable绑定到RadioButtonList
【站点导航控件】
【登陆控件】
【HTML 服务器控件】:
属于 System.Web.UI.HtmlControls 命名空间的 ASP.NET 服务器控件。HTML 服务器控件直接映射到 HTML 元素,并在 ASP.NET 页中声明为一个由 runat="server" 属性标记的 HTML 元素,例如 <button runat="server" />。与 Web 服务器控件相比,HTML 服务器控件没有 asp 标记前缀。
--?还是没搞懂什么意思?与直接拖个框,再点击生成Button1_Click,其aspx中代码也是:<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" />也同样有: runat="server" ???
按王石的意思,估计是:与标准控件很像,只是兼容了javascript方法,直接点击能生成javascript点击方法,如果不想生成javascript方法,可以右击进行生成???
注意在html中,只有javascript脚本,而没有<asp>等这种asp代码,这些代码都经过服务器解析后,生成具体的代码发送到客户端。
??ajax如何与C#绑定在一起?
相关文章推荐
- c#网页开发学习(二)
- c#网页开发学习(一)
- 从C#到Objective-C,循序渐进学习苹果开发(3)--分类(category)和协议Protocal的理解
- 从网页搭建学习php开发——html入门学习笔记(一)
- C#网页自动登录和提交POST信息的多种方法 新人学习中
- C#学习及上位机开发学习之多窗口切换
- ACCP学习旅程之-----使用C#开发数据库应用程序(第二章)
- 学习中收集的一些有关网页UI设计、前端开发的相关知识网址分享,赶紧收藏走起。。。
- 通过实例学习C#开发中的泛型
- 通过实例学习C#开发中的泛型
- 学习经验谈:Unity3d开发中最佳语言还是C#
- 手机网页开发学习(不定时更新)
- C#学习之多线程开发技术(三)
- C#微信公众号开发之网页授权oauth2.0获取用户基本信息(一)
- HTML网页开发学习笔记(燕十八)-41 字符实体
- C#微信公众号开发-高级接口-之网页授权oauth2.0获取用户基本信息(二)
- spss C# 二次开发 学习笔记(三)——Spss .Net 开发
- 响应式开发(一)-----响应式网页设计学习导航
- 从C#到Objective-C,循序渐进学习苹果开发(6)--视图控制器的使用
- 前端开发学习之道:DIV CSS 网页兼容全搞定 (IE6 IE7 IE8 IE9 火狐 谷歌)