原理很简单,通过html控件对应的服务端控件类。
类 |
标签 |
HtmlAnchor | <a> |
HtmlButton | <button> |
HtmlSelect | <select> |
HtmlTextArea | <textarea> |
HtmlInputButton | <input type="button"> |
HtmlInputCheckBox | <input type="check"> |
HtmlInputRadioButton | <input type="radio"> |
HtmlInputText | <input type="text"> 和 <input type="password"> |
HtmlInputHidden | <input type="hidden"> |
HtmlInputImage | <input type="image"> |
HtmlInputFile | <input type="file"> |
HtmlForm | <form> |
HtmlImage | <img> |
HtmlTable | <table> |
HtmlTableRow | <tr> |
HtmlTableCell | <td> |
HtmlGenericControl | 任何其它没有对应控件的标记,
如 <span>、<div> 等
|
注意:被我们在服务器端处理的html标签需要带上Runat=“server”属性
如下代码XX.aspx页面:
<body> <form id="form1" runat="server"> <asp:LinqDataSource ID="LinqDataSource1" runat="server" ContextTypeName="ListView.DataClasses1DataContext" EnableDelete="True" EnableInsert="True" EnableUpdate="True" EntityTypeName="" TableName="tbl_stock_dtl"> </asp:LinqDataSource> <input id="Button1" type="button" value="button" runat="server" /> <div> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="LinqDataSource1" OnItemDataBound="Repeater1_ItemDataBound"> <HeaderTemplate> <table> </HeaderTemplate> <ItemTemplate> <tr> <td> <%#Eval("part_code") %> </td> <td> <asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("stock_num") %>'></asp:TextBox> </td> </tr> </ItemTemplate> <FooterTemplate> </table></FooterTemplate> </asp:Repeater> </div> </form> </body>
我们要在服务器端找到<input id="Button1" type="button" value="button" runat="server" />和<asp:TextBox ID="TextBox1" runat="server" Text='<%#Eval("stock_num") %>'></asp:TextBox>
看下面对应的XX.cs文件
public partial class WebForm2 : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { //这个与Repeater1_ItemDataBound事件里面的 //TextBox tb = (TextBox)Page.FindControl("TextBox1"); //是不同的。 HtmlInputButton hb = (HtmlInputButton)Page.FindControl("Button1"); hb.Attributes["value"] = "你好!"; } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)//判断行的类型。 { tbl_stock_dtl drvRow = (tbl_stock_dtl)e.Item.DataItem;//把行里面的数据转换为dbml文件中类的相应对象 if (drvRow.stock_num == 00) { TextBox tb = (TextBox)e.Item.FindControl("TextBox1");//repeater或ListView模板中的控件不能直接通过Page.FindControl("ID")查找,切记。 //TextBox tb = (TextBox)Page.FindControl("TextBox1");//此时会出现空异常,因为repeater模板中的控件id被服务器“处理过”, //我们通过页面Page类是无法找到的。 tb.BorderColor = System.Drawing.Color.Red; } } } }