您的位置:首页 > 编程语言 > C#

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#绑定在一起?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: