我正在尝试更改位于Asp.net内的跨度的CSS类RepeaterItem。该span元件还具有它(单选按钮)内的其他标签。
标记与此类似:
<asp:Repeater>
<ItemTemplate>
<span class="spanClass" runat="server">
<label>
<asp:RadioButton id="rbID">
</asp:RadioButton>
</label>
</span>
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)
我可以使用以下命令编辑单选按钮:
rb = (RadioButton)(repeaterItem.FindControl("rbID");
rb.Checked = true;
//this works
Run Code Online (Sandbox Code Playgroud)
但是,当使用类似的代码片段来抓取时span,它会失败,并显示,InnerHtml exception因为span不是文字控件:
span = (GenericHtmlControl)(repeaterItem.FindControl("spanID");
span.Attributes.Add("class", "ClassToAdd");
//this fails
Run Code Online (Sandbox Code Playgroud)
我读过的书说是这种情况,因为span并不是文字控件,因为其中有其他服务器控件(单选按钮)。
有没有办法访问相关属性<span>?
span像这样更改您的:
<span id="spanID" runat="server">
Run Code Online (Sandbox Code Playgroud)
然后在您的代码后面:
protected void myRep_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item)
{
HtmlGenericControl x = (HtmlGenericControl)e.Item.FindControl("spanID");
x.Attributes["class"] = "myClass";
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6914 次 |
| 最近记录: |