簡體   English   中英

使用轉發器內部的枚舉,復選框的值是空的(ASP.NET Web窗體)

[英]The Value Of A Check Box Is Empty Using An Enumeration Inside A Repeater (ASP.NET Web Forms)

我有一個中繼器,我用枚舉的值設置了html復選框控件的值,而不是硬編碼一個幻數。 當我嘗試訪問轉發器的ItemCreated事件處理程序中的html復選框控件時,該值為空字符串。 為什么會這樣,我該如何解決?

C#代碼

protected void Repeater1_ItemCreated(object sender, RepeaterItemEventArgs e)
{
    var myObject = e.Item.DataItem as MyObject;
    if (myObject != null)
    {
        var checkBox = e.Item.FindControl("checkbox1") as HtmlInputCheckBox         

        // The value is empty!
        var value = checkBox.Value;
    }
}

無法運作

<asp:Repeater ID="Repeater1" OnItemCreated="Repeater1_ItemCreated" runat="server">
    <ItemTemplate>      
        <input type="checkbox" id="checkbox1" value='<%# SomeEnum.Value %>' />
    </ItemTemplate>
</asp:Repeater>

工作中

<asp:Repeater ID="Repeater1" OnItemCreated="Repeater1_ItemCreated" runat="server">
    <ItemTemplate>      
        <input type="checkbox" id="checkbox1" value="1" />
    </ItemTemplate>
</asp:Repeater>

即使在不再重新綁定Repater的情況下,也會在ItemDataBound之前以及每個回ItemCreated中觸發ItemCreated來重新創建他控制的內容。 因此,如果您需要訪問任何數據綁定WebControlDataSource (如Repeater我將不使用ItemCreated。

除此之外,如果要在服務器上find它,請選中復選框runat=server (或使用ASP.NET CheckBox )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM