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#绑定在一起?

更多推荐