e.Item.FindControl(“ID”)中的错误.ClientID为HtmlSelect

时间:2012-08-30 02:07:19

标签: asp.net html-parsing

我有这个错误,不知道什么是错误。

  

“无法将类型'字符串'转换为   'System.Web.UI.HtmlControls.HtmlSelect'通过引用转换,   装箱转换,拆箱转换,换行或转换   类型转换“

导致上述错误的代码如下:

protected void RptFaqsAnswer_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
    ...
    (e.Item.FindControl("myselect").ClientID as HtmlSelect).Items[0].Attributes.Add("display", "none");
    ...
}

在.aspx页面中,我将此选择标记作为“转发器”的子项。

<asp:Repeater ID="rptFaqsAnswer" runat="server" OnItemDataBound="RptFaqsAnswer_ItemDataBound">
    <select runat="server" id="myselect">
        <option value="c1">Choice 1</option>
        ...
    </select>
</asp:Repeater>

这个错误的原因似乎是什么。

由于

RJ

1 个答案:

答案 0 :(得分:1)

试试这个

e.Item.FindControl("myselect") as HtmlSelect

而不是

e.Item.FindControl("myselect").ClientID as HtmlSelect

这是您尝试转换的ClientID,这就是您收到错误的原因