JavaScript 调用c#方法(删除操作询问是否删除)详解

之前看过一些文章,但是始终不得其门而入,因为需要调用layer层,但是调用layer层以后他会直接先return 完再执行询问,结果是。。。很尴尬。

点击打开链接

其它大神们所写的方法;

后来又找了一些。找到个浏览器的询问方法:

感觉丑的1b;但是却十分简单,没有特殊癖好的话可以选择这样使用;

 <asp:LinkButton ID="btnDelete" Text="删除" OnClientClick=" if(confirm('是否删除?')){return true }else{ return false}" OnCommand="delete" CommandName='<%#Eval("DDId") %>'runat="server" />

就是在执行方法的控件加上一个 OnClientClick=" if(confirm('是否删除?')){return true }else{ return false}" 即可;



最后也忘记了是在哪篇文章看到了这个方法,感觉棒棒哒;所以分享给大家,



直接贴图吧,不知道你们擦入代码块是怎么搞的,我不会。新手,菜鸟  大家凑合着看吧



找到了。。。。。再改一改

1、定义两个控件,一个装值一个做触发;隐藏掉两个控件;定义好id、设置好Button的服务器事件;


<asp:TextBox  runat="server" ID="deleteId" Style="display: none" />
 <asp:Button Text="text" ID="deleteBtn" OnClick="deleteBtn_Click" Style="display: none" runat="server" />

2、在列表(或需询问的控件)加入JS方法;并传入所需参数

3、js方法体调用layer询问层 ;并赋值给input 控件;调用方法__doPostBack("隐藏的控件ID"):

function del(dataid) {
            layer.confirm("你确定要删除吗?", { icon: 3, title: '提示' },
                function (index) {
                    jQuery("#deleteId").val(dataid);
                    __doPostBack('deleteBtn');
                });
        }
4、注册服务器事件:
 protected void deleteBtn_Click(object sender, EventArgs e)
        {
            string delId = deleteId.Text;
            string sql = "delete T_SysMenu where MenuId =" + delId;          
                if (DBHelper.ExecuteNonQuery(sql, null) > 0)
                {
                    ShowMsg("删除成功!");
                    Bind();
                }
        }

5、在页面配置中加入参数: EnableEventValidation="false" 默认情况是=true的

 EnableEventValidation="false"

完成!


    *隐藏控件需要用display  因为 visbli属性是销毁在html的,所以js是访问不到的;

     __doPostBack()方法是js调用服务器方法的方法;这里只举例一个;其它请自行脑补语法要注意,是两个'_' 下划线+doPostBack;括号里面写服务器控件的ID;

总结:这是我第一次发帖。发个贴出来很简单,但是在学习如何使用的时候是需要耗费很多精力的,比如说我调试这个功能就调试了好久好久。比如说我问过一个十年的大牛,人家表示没研究过,都是用地址栏传或者调用API;但是那两种方法在后台代码用好像感觉比较low;所以继续研究了研究、、、好不容易调试好了。贴出来,如果哪天有像我一样的小白有需要的时候就可以少走弯路喽




阅读更多
个人分类: 新手学习贴
下一篇一个好玩的题,asp.net可作为面试题的递归算法
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭