IsPostBack是Page类的一个属性

IsPostBack是Page类的一个属性,第1张

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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10101151.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-05
下一篇 2023-05-05

发表评论

登录后才能评论

评论列表(0条)

保存