繁体   English   中英

选中GridView复选框时启用GridView列

[英]Enabling GridView columns when GridView checkbox is checked

在GridView(ASP.NET/C#)中,我有许多模板字段-与该问题相关的2个模板字段是'checkbox1'和'quantity'。 复选框以每行未选中的形式开始,数量以每行禁用的形式开始。 但是,当用户勾选其中一个行复选框时,我需要一段JavaScript或其他代码来检查是否选中了相关行复选框,如果需要,请启用行数文本框。

我该怎么做呢?

确保从禁用数量开始。 我假设它是一个TextBox:

<asp:TemplateField>
    <ItemTemplate>
        <asp:CheckBox ID="checkbox1" runat="server" />
    </ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
    <ItemTemplate>
        <asp:TextBox ID="quantity" runat="server" Enabled="false" />
    </ItemTemplate>
</asp:TemplateField>

在页面上添加以下JavaScript代码:

<script type="text/javascript">

    function ChangeQuantityEnable(id, enable) {
        document.getElementById(id).disabled = !enable;
    }

</script>

然后在您的gridview的RowDataBound事件处理程序中,添加

if (e.Row.RowType == DataControlRowType.DataRow)
{
    CheckBox chk = (CheckBox)e.Row.FindControl("checkbox1");
    TextBox txt = (TextBox)e.Row.FindControl("quantity");

    chk.Attributes["onclick"] = string.Format("ChangeQuantityEnable('{0}', this.checked);", txt.ClientID);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM