最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

c# - How to use confirm before chekboxchanged in asp.net? - Stack Overflow

programmeradmin2浏览0评论

I use checkbox control in gridview i want to show confirm before checkboxchanged event.

Confirm box is asking question but not postback it, doing nothing...

// CS

        TemplateField field = new TemplateField(){
            HeaderText = "AKTIF",
            ItemTemplate = new AddTemplateToGridView("AKTIF")
        };
        field.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
        field.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
        field.ItemStyle.Width = Unit.Pixel(40);
        newXGrid.Columns.Add(field);

// ITEMPLATE

        public class AddTemplateToGridView : ITemplate
        {
            String columnName;

            public AddTemplateToGridView(String colname)
            {
                columnName = colname;
            }

            void ITemplate.InstantiateIn(System.Web.UI.Control container)
            {
                if (columnName == "AKTIF")
                {
                    CheckBox chk = new CheckBox() { ID="chkAktif", AutoPostBack=true };
                    chk.Attributes.Add("onclick","return confirm('Are you sure ?')");
                    chk.CheckedChanged += new EventHandler(l_CheckedChanged);
                    container.Controls.Add(chk);
                }
            }


            void l_CheckedChanged(object sender, EventArgs e)
            {
               ...
            }



        }

// My checkbox on page

<input id="ctl00_MainContent_ctl11_ctl02_chkAktif" type="checkbox" name="ctl00$MainContent$ctl11$ctl02$chkAktif" onclick="return confirm('Are you sure ?');setTimeout('__doPostBack(\'ctl00$MainContent$ctl11$ctl02$chkAktif\',\'\')', 0)">

I use checkbox control in gridview i want to show confirm before checkboxchanged event.

Confirm box is asking question but not postback it, doing nothing...

// CS

        TemplateField field = new TemplateField(){
            HeaderText = "AKTIF",
            ItemTemplate = new AddTemplateToGridView("AKTIF")
        };
        field.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
        field.ItemStyle.HorizontalAlign = HorizontalAlign.Center;
        field.ItemStyle.Width = Unit.Pixel(40);
        newXGrid.Columns.Add(field);

// ITEMPLATE

        public class AddTemplateToGridView : ITemplate
        {
            String columnName;

            public AddTemplateToGridView(String colname)
            {
                columnName = colname;
            }

            void ITemplate.InstantiateIn(System.Web.UI.Control container)
            {
                if (columnName == "AKTIF")
                {
                    CheckBox chk = new CheckBox() { ID="chkAktif", AutoPostBack=true };
                    chk.Attributes.Add("onclick","return confirm('Are you sure ?')");
                    chk.CheckedChanged += new EventHandler(l_CheckedChanged);
                    container.Controls.Add(chk);
                }
            }


            void l_CheckedChanged(object sender, EventArgs e)
            {
               ...
            }



        }

// My checkbox on page

<input id="ctl00_MainContent_ctl11_ctl02_chkAktif" type="checkbox" name="ctl00$MainContent$ctl11$ctl02$chkAktif" onclick="return confirm('Are you sure ?');setTimeout('__doPostBack(\'ctl00$MainContent$ctl11$ctl02$chkAktif\',\'\')', 0)">
Share Improve this question edited Jul 4, 2018 at 7:12 Mennan asked Mar 14, 2012 at 14:38 MennanMennan 4,49713 gold badges56 silver badges89 bronze badges
Add a ment  | 

2 Answers 2

Reset to default 8

Change this:

chk.Attributes.Add("onclick","return confirm('Are you sure ?')");

to this:

chk.Attributes.Add("onclick","if (!confirm('Are you sure ?')) return false;");

Set AutoPostBack="true" for the Checkbox to trigger the postback on click.

You are preventing javascript to execute setTimeout() by using return with confirm dialog.

Try this:

if(confirm('Are you sure?'))
    setTimeout('__doPostBack(\'ctl00$MainContent$ctl11$ctl02$chkAktif\',\'\')', 0);
else
    return false;
发布评论

评论列表(0)

  1. 暂无评论