1

我有一个复选框,负责显示/隐藏一个 div。我创建了一个自定义属性“myDiv”并将复选框负责的 div 的名称放在那里。

<asp:CheckBox ID="CheckBox1" myDiv="divRegisteration" myText=" הרשמה - " runat="server" AutoPostBack="true" Font-Size="18px" Font-Bold="true" Text=" הרשמה - הצג" OnCheckedChanged="CheckBox_CheckedChanged"/>

当我尝试从后面的代码中获取 div 的名称时,出现错误:

 protected void CheckBox_CheckedChanged(object sender, EventArgs e)
    {
        if (((CheckBox)(sender)).Checked==true)
        {
            CheckBox chk = (CheckBox)(sender);            
            object div = chk.Parent.FindControl(chk.Attributes["myDiv"]);

它没有找到属性“myDiv”。由于某种原因,它只找到 2 个我什至不知道它们来自哪里的属性。还有另一种获取自定义属性的方法吗?

4

3 回答 3

2

您只能将属性设置为在客户端呈现,当 from is 时无法直接访问属性值(在服务器端)POSTED。要访问属性值,您可以使用可以通过javascript在客户端设置的隐藏字段。

于 2013-03-29T09:34:23.093 回答
0

您可以通过使用 jquery 来做到这一点

if ($('#CheckBox1').is(':checked')) {

    $("#Urdiv").show();
} else {
    $("#Urdiv").hide();
} 

在 CheckBox1 使用 clientId

于 2013-03-29T10:48:33.087 回答
0

是的,您可以从后面的代码中获取属性的值。例如,如果您有一个这样的复选框控件:

<input type="checkbox" runat="server" id="chkBoxCreate" class="item" itemid="1" onclick="Create();" />

然后你可以在下面的代码中得到它的值:

string itemId = chkBoxCreate.Attributes["itemid"];

享受 :)

于 2018-12-19T11:18:19.343 回答