页面加载顺序问题

amass1024 2009-05-04 06:10:42
前台代码

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:KnowledgeConnectionString %>"
SelectCommand="SELECT BitOrder,Name FROM KB.Area order by BitOrder"></asp:SqlDataSource>
<asp:CheckBoxList ID="AreaList" runat="server" RepeatDirection="Horizontal" AppendDataBoundItems="True"
DataSourceID="SqlDataSource1" DataTextField="Name" DataValueField="BitOrder">
</asp:CheckBoxList>

后台代码

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
LoadNodeInformation();//加载节点信息
}
}

protected void LoadNodeInformation()
{
for (int i = 0; i < AreaList.Items.Count; i++)
{
//业务逻辑
}
}

protected void SaveButton_Click(object sender, EventArgs e)
{
int i = AreaList.Items.Count;
}


问题来了,LoadNodeInformation方法里面的AreaList.Item.Count的指为0,
但是在SaveButton_Click方法里面AreaList.Item.Count的指是非0的,
请教达人,这个是什么问题,难道是调用LoadNodeInformation方法时AreaList还没有动态加载?
...全文
707 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
amass1024 2009-05-05
  • 打赏
  • 举报
回复
感谢各位,问题已经解决

因为我的CheckBoxList是绑定SqlDataSource,当页面第一次加载的时候,CheckBoxList还没有绑定SqlDataSource

解决办法,在Page_Load方法里面添加一个BindCheckBoxList()方法,用程序实现数据源绑定
youyuan1980 2009-05-05
  • 打赏
  • 举报
回复
感觉第二次没绑定。呵呵。
sayoath 2009-05-05
  • 打赏
  • 举报
回复
if (!IsPostBack)
{
LoadNodeInformation();//加载节点信息
}

第一次加载页行执行. 以后怎么刷新也不会执行.
所以你下边的值才会变..因为当刷新页面时.
系统会自己动释放掉一些信息....
所以每次执行操作都得重新绑定数据源.

amass1024 2009-05-05
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 namhyuk 的回复:]
点击SaveButton时,触发SaveButton_Click事件,但之前肯定是要执行Page_Load()的。

也就是每次页面加载时(注意:这个加载是指在服务器端每次为你动态重新构建一个新的页面时),Page_Load都会执行。

当点击SaveButton时,进入Page_Load,这时IsPostBack为true,那么就会绕过LoadNodeInformation()方法。
[/Quote]

我是希望当页面第一次加载的时候LoadNodeInformation()方法就能够获取到AreaList.Item.Count的值
这个有什么方法实现吗?

to:drik
尝试过你说的方法,页面在第一次加载同样是获取不到AreaList.Item.Count的值,只有第二次才能获取到
namhyuk 2009-05-04
  • 打赏
  • 举报
回复
点击SaveButton时,触发SaveButton_Click事件,但之前肯定是要执行Page_Load()的。

也就是每次页面加载时(注意:这个加载是指在服务器端每次为你动态重新构建一个新的页面时),Page_Load都会执行。

当点击SaveButton时,进入Page_Load,这时IsPostBack为true,那么就会绕过LoadNodeInformation()方法。
drik 2009-05-04
  • 打赏
  • 举报
回复
if (!IsPostBack)
{

}
把这个去掉试试
gdjlc 2009-05-04
  • 打赏
  • 举报
回复
不是很明白。。
这个AreaList多选页面加载时默认有没选择的?
SaveButton_Click点击时是不是已经选择了?

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧