1

我正在尝试将方法分配给复选框标记上的事件,如下所示:

    OnCheckedChanged="ShowDiv"

但是,我一点也不成功。怎么做?这是我的方法:

    public void ShowDiv(object sender, System.EventArgs e) 
    {
        var div = FindControl("ListaEmOutrosDocumentos") as HtmlGenericControl;
        var checkbox = FindControl("Principal") as CheckBox;

        if(checkbox.Checked == true)
        {
            div.Style.Clear();
            div.Style.Add("display","block");
        }
        else
        {
            div.Style.Clear();
            div.Style.Add("display","none");
        }
    }
4

3 回答 3

2

您可能会考虑使用 ASP.NETPanel控件而不是div. 这将具有您可以设置的 Visible 属性。

于 2012-10-15T21:39:47.023 回答
1

我这样做了,它奏效了。

<div id="ListaEmOutrosDocumentos" runat="server">
            <asp:CheckBox runat="server" ID="Principal" AutoPostBack="True" OnCheckedChanged="ShowDiv"/>
        </div>

代码背后

public void ShowDiv(object sender, System.EventArgs e)
    {
        var div = ListaEmOutrosDocumentos as HtmlGenericControl;
        var checkbox = sender as CheckBox;

        if (checkbox.Checked == true)
        {
            div.Style.Clear();
            div.Style.Add("display", "block");
        }
        else
        {
            div.Style.Clear();
            div.Style.Add("display", "none");
        }
    }
于 2012-10-15T21:45:28.793 回答
1

仅使用服务器端代码的快速方法

象素

<div id="myDiv" runat="server" style="height:200px;width:100px;background-color:Blue"></div>
<asp:CheckBox ID="chkShowHideDiv" runat="server" AutoPostBack="True" 
    oncheckedchanged="chkShowHideDiv_CheckedChanged" Text="Hide Div"  />

背后的代码

 protected void chkShowHideDiv_CheckedChanged(object sender, EventArgs e)
{
    myDiv.Visible = chkShowHideDiv.Checked ? false : true;
}
于 2012-10-16T04:42:44.167 回答