使用模板列中的复选框 - 拒绝多个选择

时间:2011-03-11 10:20:21

标签: asp.net checkbox telerik radgrid

早上好。

我有以下情况,我有一个radgrid,在里面,我有一个包含复选框的模板列:

    <telerik:GridTemplateColumn UniqueName="TemplateColumn" HeaderText="Display Information" >
<ItemTemplate>
<asp:Panel ID="Panel1" runat="server">
<asp:CheckBox ID="CheckBox1" runat="server" AutoPostBack="true" OnCheckedChanged="CheckedChanged" />
</asp:Panel>
</ItemTemplate>
</telerik:GridTemplateColumn>

检查后,会触发以下事件,以简单的方式更改数据项的样式:

protected void CheckedChanged(object sender, EventArgs e)
        {
            {
                var chkBox = (sender as CheckBox);
                var myPanel = chkBox.Parent as Panel;
                var dataItem = myPanel.NamingContainer as GridDataItem;
                var cell = dataItem["Id"].Text;

                if (chkBox.Checked)
                {
                    dataItem["Id"].Style["color"] = "orange"; 
                    dataItem["Desc"].Style["color"] = "orange";                   
                }
                else
                {
                    dataItem["Id"].Style["color"] = "black"; 
                    dataItem["Desc"].Style["color"] = "black";
                }
            }
        }

这可以按预期工作并完成工作。

但是,我真的只希望用户能够一次选择一个复选框。

因此,如何确保删除之前的任何“支票”或完全停止多次检查?

非常感谢任何帮助或建议。

1 个答案:

答案 0 :(得分:0)

首先,为什么不使用radion按钮,然后给所有单选按钮指定相同的NAME标签。这将它们“组合”在一起,一次只能选择一个。

编辑: 如果必须有复选框,则另外一个选项就是在后面的代码或JavaScript中的事件中清除它们。

干杯, 斯蒂芬