IsPostBack
IsPostBack是Page类有一个bool类型的属性,用来判断针对当前Form的请求是第一次还是非第一次请求。当IsPostBack=true时表示非第一次请求,我们称为PostBack,当IsPostBack=false时表示第一次请求。在aspnet框架内部有很多的场景需要判断IsPostBack,比如LoadAllState等 *** 作就需要在PostBack的时候进行。对于我们自己使用WebForm进行开发时,经常会在Page_Load中对IsPostBack进行判断,因为第一次请求的时候会执行Page_Load,在非第一次请求的时候也会执行Page_Load。为什么对同一个Form有多次请求呢?aspnet中引入了服务器端事件,支持服务器端事件的控件,会发出对当前Form的请求,这样在很多情形下我们就需要区别是否是对这个Form的第一次请求。
var p=documentgetElementById("<%=PanelClientID%>");
对于这行代码来说,Panel这个对象是服务端的对象,在客户端无法得到的
function PanelChange(Panel)
显然,这个函数传入的参数是Panel,但是<%=PanelClientID%>这又是在服务端运行的,这里的Panel是一个服务端的对象,与js函数的参数Panel完全是两回事
你这样改一下
function PanelChange(Panel)
{
if(pstyledisplay=="")
pstyledisplay="none";
else
pstyledisplay="";
}
当调用这个函数的时候 ,你就可以把<%=PanelClientID%>当作一个参数传入了:
PanelChange("<%=Panel1ClientID%>");
PanelChange("<%=Panel2ClientID%>");
PanelChange("<%=Panel3ClientID%>");
PanelChange("<%=Panel4ClientID%>");
JS获取用户控件中的子控件Id
用户控件
<asp:HiddenField ID="hfGradeId" runat="server" />
<asp:HiddenField ID="hfClassId" runat="server" />
//获取用户控件中子控件真实id,用于在页面中的js中调用,调用方法
public string GradeClientID
{
get { return thishfGradeIdClientID; }
}
public string ClassClientID
{
get { return thishfClassIdClientID; }
}
调用用户控件页面使用
if($('#<%=ddlGradeAndClassGradeClientID %>')val()=="-1"||$('#<%=ddlGradeAndClassGradeClientID %>')val()==""){
alert("请选择年级!");
return false;
}
if($('#<%=ddlGradeAndClassClassClientID
%>')val()=="-1"||$('#<%=ddlGradeAndClassClassClientID
%>')val()==""){
alert("请选择班级!");
return false;
}
你的隐藏域使用了runat="server",表示此控件由服务器管理,所以它的id可能会经服务器重新分配,若要获取生成html源码后的控件id,可以使用IDClientID获取:
function deleteButton(){documentgetElementById('<%=divButtonClientID%>')innerHTML="";
documentgetElementById('<%=hfButtonNameClientID%>')value="";
documentgetElementById('<%=hfNextNumberClientID%>')value="";
documentgetElementById('<%=hfButtonCountClientID%>')value="0";
}
但<%%>符号不能在标记有runat="server"的head标签内出现,所以此代码可放到body标签内或没有runat="server"的head标签内
大致是HtmlControl被服务器发送到页面ID不变,比如<div id="a" runat="sever"></div>
WebControl 被服务器发送到页面,如果在其他循环控件里,或者在用户控件中,ID会变,
用documentgetElementById("<%=Button1ClientID%>")
这个你多看看页面源代码,就知道什么时候会变。什么时候不会变
类似取Text需要这样写:documentgetElementById("<%=Button1ClientID%>")value
而不是直观意义上documentgetElementById("<%=Button1ClientID%>")text
这个是javascript语言,就这个语法,这个属性,就用value取值,在js中就是这样,没什么说的
如果是在net后台,才用Button1Text
<%=picClientID%> => <%= picClientID %>
加上空格试一试,我的这样写是可以认出来的。比如以下的代码
<%= RoleIdClientID %>setDisabled(!recdataIsOperator);
1、documentgetElementById('<%=txtUsernameClientID %>')value = "" 意思是:取txtUsername的客户端id,就给它赋一个空值("")。<%=txtUsernameClientID %> 表明txtUsername是在服务端运行,如: <asp:TextBox ID="txtUsername" runat="server"/> runat="server"就是在服务端运行,在客户端上,它的id不一定是txtUsername,所以要用<%=txtUsernameClientID %>获取客户端Id。
2、documentgetElementById('txtUsername')value = "" 是给客户端ID为txtUsername的控件赋值。
以上就是关于IsPostBack是Page类的一个属性全部的内容,包括:IsPostBack是Page类的一个属性、js 获取控件ID 问题、js如何获取控件id等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)