C# asp.net 页面加载的过程是前台页面先加载还是后台的,求解

前台页面部分代码(关键是第一行代码 var item in list)
<%foreach (var item in list)
{ %>
<tr class="tdbg" align="center">
<td>
<input type="checkbox" name="sel" id="sel_<%=item.ID %>" value="ON" />
</td>
<td align="left" style="text-indent: 10px;">
、、、
后台代码
全局变量
protected localhost.V_Product[] list;
protected void Page_Load(object sender, EventArgs e) {
try {
if (!IsPostBack) {
if (Request["action"] == "check") {
UncheckBind();
}
if (Request["action"] == "signup") {
CheckedBind();
}
}

}
catch (Exception ex) {
Msg = MF.Com.ArtDialog.ShowSadTip(ex.Message);
}
}

private void CheckedBind() {
string where = "1=1";
int totalRecords;
list = service.GetPaged(where, " [CreateTime] Asc", anp.CurrentPageIndex - 1, anp.PageSize, out totalRecords);
anp.RecordCount = totalRecords;
}

第1个回答  2014-03-07
后台页面先加在,然后才运行前台的代码。追问

那个 list咱们不是给他赋值了(在绑定方法的第三行),然后它怎么会为null

追答

会不会执行的这段代码
if (Request["action"] == "check") {
UncheckBind();
}
后台断点调试一下,看看list是否真有值。

本回答被提问者采纳
第2个回答  2014-03-07
建议去了解下asp.net页面运行周期。简单来说你这个页面:
1、请求到达服务器
2、服务器运行页面cs代码
3、服务器加载aspx文件,执行<% %>代码块
4、你这段代码是有问题的,在Ispostback的情况下,list就是null
5、尽量不要在aspx中去拼接代码块,用轻量级控件
望采纳
第3个回答  2014-03-07
.net的机制是i这样的 先运行a.aspx.cs的Load事件 处理结束后生成部分html标签
转换到a.aspx 处理<% %>之间的代码 注意此时的.net控件 如asp:TextBox等已经转换为对应
的html的<input type='text'> 然后运行body 的onload事件
第4个回答  2014-03-07
先是加载页面,然后调用页面加载事件,就是页面还没加载完就应该调用了page_log进入后台,要不然你页面上的id="sel_<%=item.ID %>"怎么读得出数据
相似回答