C/S转B/S学习第一步 几个常用的东东和需要注意的事项

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>
View Code
 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         }
View Code

 

今天的一期就到这吧,下期我们聊聊html相关话题吧,webform这孩子不太听话,闹不好,准备丢了,谁爱领养谁领养。

 

转载于:https://www.cnblogs.com/zhaolong294364106/p/4600014.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值