1.后台调用前台
ScriptManager.RegisterStartupScript(this, this.Page.GetType(), "", "前台方法名();", true);
如果调用后台方法的前台方法的触发元素在UpdatePanel中,则
ScriptManager.RegisterStartupScript(UpdatePanelID, this.Page.GetType(), "", "前台方法名();", true);
2.前台调用后台
网上有好几个方法,但是都很操蛋,
(1)比如把方法设为非void返回值类型,然后权限设为public或者protected类型。然后直接alert(‘<%=后台string类型方法%>‘),操蛋,这个方法在每次pageload过后都会被执行。。。。。。
(2)通过提交服务器表单,指定他的事件参数和指向目标,然后提交表单,这方法你会用么,我是感觉累的不行。
还有其他几种都是比较扯,用起来各种问题我也就不去找解决之道了,目前我就用一种方法,直接在前台方法中调用服务器端控件的事件,则直接跳入给后台服务器事件,从事件找出口跳到自己想要执行的方法。要么加标记,判断标记0时执行正常的事件应该走的流程,标记其他时就知道是从前台调用进来的,然后根据标记的内容判断是前台哪个方法调用的,执行后台对应的方法。
3.隐藏控件或隐藏域存储值
隐藏域存储值,因为其自身是个没有焦点的控件,所以不会获得change事件,就不能引发改变,所以就要我们强制引起change,从而改变他的值。
前台调用和一般控件一样,后台取值时string s = Request.Form["隐藏域Name"]。后台无法进行赋值,需要从前台进行赋值,赋值时千万记得强制change哦!
隐藏控件各种初始化没有生成问题,所以我们就不设置其隐藏属性为妙,聪明的做法就是使用会隐身术的容器包裹他一下,自然就隐藏起来了。
比如使用<
span
style
=
"display: none"
><
input
id
=
"id1"
value
=
"你要赋的值"
/></
span
> 或者<div>这类会隐身的标签都行,一包装就ok了,用起来比隐藏域舒服的多。
4.打开(全屏)子窗口,子窗口关闭时刷新父窗口(比较实用的一个方法)
使用了js打开子窗口
window.open(‘PtnPayForDebt.aspx?ID=‘ + str, ‘newwindow‘, ‘width=‘ + (window.screen.availWidth - 10) + ‘,height=‘ + (window.screen.availHeight - 30) + ‘,top=0,left=0,resizable=yes,status=yes,menubar=no,scrollbars=yes‘);
同样使用js代码关闭自身并刷新父窗体
window.opener.btnFreshData();
window.open(‘‘, ‘_self‘);
window.close();
5.弹出层和关闭层
1 //div初始状态进入隐身状态,呵呵 2 <div id="popDiv" class="mydiv" style="display:none;">如确认删除,必须填写删除原因!<br/> 3 <asp:Label ID="Label2" runat="server" Text="删除原因:"></asp:Label> 4 <asp:Label ID="lblRecID" runat="server" Text="" Visible="false"></asp:Label> 5 <asp:TextBox ID="txtBox_reason" runat="server" Width="110" Text=""></asp:TextBox><br/> 6 <a href="javascript:closeDiv()">确认删除</a> 7 <a href="javascript:cancelDiv()">取消删除</a> 8 </div>
1 function showDiv() { 2 document.getElementById(‘popDiv‘).style.display = ‘block‘; 3 document.getElementById(‘bg‘).style.display = ‘block‘; 4 } 5 6 function closeDiv() { 7 if(document.getElementById("<%=txtBox_reason.ClientID%>").value == "") { 8 alert(‘请输入删除收费单原因!‘); 9 return; 10 } 11 else { 12 document.getElementById("<%=ButtonReturn.ClientID%>").click(); 13 document.getElementById(‘popDiv‘).style.display = ‘none‘; 14 document.getElementById(‘bg‘).style.display = ‘none‘; 15 } 16 document.getElementById("<%=txtBox_reason.ClientID%>").value = ""; 17 }
今天的一期就到这吧,下期我们聊聊html相关话题吧,webform这孩子不太听话,闹不好,准备丢了,谁爱领养谁领养。