e.Item.FindControl( "ID" 中的错误。ClientID as HtmlSelect



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

"无法将类型'string'转换为"System.Web.UI.HtmlControls.HtmlSelect",通过引用转换,装箱转换、取消装箱转换、包装转换或null类型转换"

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

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

试试这个

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

而不是

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

您正试图转换的是ClientID,这就是为什么您收到错误

最新更新