[英]How to add ASP.NET control for <i></i> tags in Html and assign them inside .FindControl() method on .cs?
有誰知道如何為<i></i>
標簽添加 ASP.NET 控件?
我正在尋找與<i>
Html 標記等效的 ASP.NET 控件
就我而言,我還想在.cs文件中為它實現 .FindControl() 方法。
這是代碼的一部分..
例子.axcs
<asp:Panel id="forDiv" CssClass="input-group colorpicker-component" runat="server">
<asp:TextBox ID="txtHeree" class="form-control" runat="server" Style="width: auto"></asp:TextBox>
<asp:Panel CssClass="input-group-append" runat="server">
<asp:Label CssClass="input-group-addon input-group-text" runat="server"><i></i></asp:Label>
</asp:Panel>
</asp:Panel>
從上面的代碼中,我實現的 FindControl 方法是這樣的,
例子.ascx.cs
TextBox txtVal = e.Row.FindControl("txtHeree") as TextBox;
Panel txtVal = e.Row.FindControl("forDiv") as Panel;
等等..
我目前的問題是,我仍然找不到<i></i>
標記的等效 ASP.NET 控件以及它的 .FindControl() 方法。
當然,我已經閱讀了 Stackoverflow 和 Microsoft Docs 中對另一個 QnA 論壇的引用:
ASP.NET 控件到 HTML 標記等效
和
https://docs.microsoft.com/en-us/troubleshoot/developer/webapps/aspnet/development/server-controls
<i></i>
標簽控件的任何建議、答案或有效代碼都將非常...非常有幫助。
謝謝你。
當然,如果你添加一個“id”標簽,並且 runat=server,那么那個“i”就變成了一個服務器端控件。
這樣做允許在列表視圖、中繼器等中使用。
所以,這樣做:
<i id="MyIguy" runat="server"></i>
<br />
<asp:Button ID="Button1" runat="server" Text="Button"
CssClass="btn" OnClick="Button1_Click" />
因此,按鈕后面的代碼如下:
protected void Button1_Click(object sender, EventArgs e)
{
MyIguy.InnerText = "this is fun";
}
我們在運行時看到了這一點:
假設我們使用gridview、repeater 等?
說這個標記,我們剛剛加入(帶有 id 和 runat=server)。
相當多地使該控件的工作、外觀和感覺與任何其他服務器端 asp.net 控件一樣。
比如說,這個標記和網格視圖(對於查找控件示例)。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"
DataKeyNames="ID" CssClass="table" >
<Columns>
<asp:TemplateField HeaderText="Hotel Name"> <ItemTemplate>
<asp:Label ID="txtHotel" runat="server" Text='<%# Eval("HotelName") %>' ></asp:Label>
</ItemTemplate> </asp:TemplateField>
<asp:TemplateField HeaderText="City"> <ItemTemplate>
<asp:Label ID="txtCity" runat="server" Text='<%# Eval("City") %>' ></asp:Label>
</ItemTemplate> </asp:TemplateField>
<asp:TemplateField HeaderText="Description"> <ItemTemplate>
<i id="Descript" runat="server"> <%# Eval("Description") %> </i>
</ItemTemplate> </asp:TemplateField>
<asp:TemplateField HeaderText="View"> <ItemTemplate>
<asp:Button ID="Button1" runat="server" Text="View"
CssClass="btn" OnClick="Button1_Click" />
</ItemTemplate> </asp:TemplateField>
</Columns>
</asp:GridView>
要加載的代碼:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
GridView1.DataSource = General.MyRst("SELECT * FROM tblHotelsA ORDER BY HotelName");
GridView1.DataBind();
}
}
我們現在有了這個:
而我們的查看按鈕點擊代碼,這樣說:
protected void Button1_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
GridViewRow gRow = btn.NamingContainer as GridViewRow;
int? PKID = GridView1.DataKeys[gRow.RowIndex]["ID"] as int?;
Debug.Print("pk data base row id = " + PKID.ToString());
Debug.Print("Row click index = " + gRow.RowIndex);
// get hotel name
Label txtHotel = gRow.FindControl("txtHotel") as Label;
Debug.Print("Hotel name = " + txtHotel.Text);
// get our <i> guy
HtmlGenericControl myIthing = gRow.FindControl("Descript") as HtmlGenericControl;
Debug.Print("Our i guy = " + myIthing.InnerText);
}
輸出 :
因此,大多數這樣的控件 - 添加一個“id”和 runat="server",在這一點上,它的行為與大多數其他 asp.net 控件非常相似。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.