C#中的Checkbox不会发生自动回发 [英] Autopostback is not happening for Checkbox in C#

查看:146
本文介绍了C#中的Checkbox不会发生自动回发的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述



我在gridview中有两个复选框.当单击第一个复选框时,不会发生自动回发.如何操作.请参见下面的代码-

ASPX页面-

Hi,

I have two check box inside gridview.While clicking on first check box Autopostback is not happening.How to do.Please see my below code--

ASPX Page--

<asp:TemplateColumn HeaderStyle-Width="60px" HeaderStyle-CssClass="gridheader">
                                <ItemStyle HorizontalAlign="Center" />
                                <HeaderTemplate>
                                    Is Omani
                                </HeaderTemplate>

                                <ItemTemplate>

                                    <asp:CheckBox ID="chkIsOmani" CssClass="CheckBox" runat="server" Checked='<%#Bind("IsOmani") %>'

                                        OnCheckedChanged="chkIsOmani_CheckedChanged" AutoPostBack="true"   />

                                </ItemTemplate>
                            </asp:TemplateColumn>
                            <asp:TemplateColumn HeaderStyle-Width="60px" HeaderStyle-CssClass="gridheader">
                                <ItemStyle HorizontalAlign="Center" />
                                <HeaderTemplate>
                                    Is SME
                                </HeaderTemplate>
                                <ItemTemplate>
                                    <asp:CheckBox ID="chkIsSME" CssClass="CheckBox" runat="server" Checked='<%#Bind("IsSME") %>' ToolTip="IS SME can be selected only if IS Omani is selected"  />
                                </ItemTemplate>
                            </asp:TemplateColumn>




.CS页面---




.CS Page---

public string CheckOmaniData()
    {
        string _Items = "";
        foreach (DataGridItem _item in dgServices.Items)
        {
            CheckBox chkIsOmani = (CheckBox)_item.FindControl("chkIsOmani");
            CheckBox chkIsSME = (CheckBox)_item.FindControl("chkIsSME");



            if (chkIsOmani.Checked)
            {

                _Items = _Items + _item.Cells[0].Text + ",";


                chkIsSME.Enabled = true;
                chkIsSME.Attributes.Add("onclick", "return true;"); // To retain the value like enabling
            }
            else
            {
                _Items = _Items + _item.Cells[0].Text + ",";

                //chkIsSME.Enabled = false;
                chkIsSME.Attributes.Add("onclick", "return false;"); //To retain original value like disabling
                chkIsSME.Checked = false;

            }


        }
        return _Items.Substring(0, _Items.Length - 1);
    }

    protected void chkIsOmani_CheckedChanged(object sender, EventArgs e)
    {

        CheckOmaniData();
    }

推荐答案



您可以使用rowcommand代替当前的编码.

将CommandName赋予gridview中的Chechbox.说"Check1"

您必须在gridview的RowCommand事件上执行代码.检查以下示例

Hi,

You can use rowcommand instead of current coding.

Give CommandName to Chechbox in gridview. say "Check1"

You have to do the code on RowCommand event of gridview. check following example

void ProductsGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
 {
   // CommandName property to determine which button was clicked.
   if(e.CommandName=="check1")
   {
     // code on checkbox select
   }
}




谢谢,
Bh @ gyesh




Thanks,
Bh@gyesh


这篇关于C#中的Checkbox不会发生自动回发的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆