我有一个包含转发器的div(runat = server),这个转发器从datatable获取值
当数据表为空时,我在asp .net函数
中执行这行代码divname.innerHTML="<img src="...>"
在这个页面上还有一个asp:按钮,用数据填充数据表。 当按下按钮时,上面的行没有执行,页面正在进行回发,但div内容没有变回原来的值(转发器)。
为了强制div获取原始值,我在回发中需要做些什么?
这是代码示例:
sub page_load(..
if ispostback=false then
run_div()
end if
end sub
sub run_div()
if datatable.Rows.Count=0 then
divname.innerHTML="<img src="...>"
end if
end sub
sub filldata(....
fill datatable
repeater.datasource=...
repeater.databind
run_div()
end sub
html look like this
<div runat=servver id=divname><asp:repeater>.....
<asp:button onclick="filldata">
感谢您的帮助
答案 0 :(得分:0)
假设名为datatable的变量是System.Data.DataTable,请记住它只存在并且在页面生命周期的兄弟运行的上下文中有数据。如果重新生成页面(无论是通过回发还是页面的初始加载),DataTable在加载之前都是空的。
但是,Repeater对象存储在ViewState中。如果前一次加载中有行,IT将在回发中具有值。
您应该查看Repteater.Items.Count,而不是查看表中的行数。
If repeater.Items.Count = 0 Then
divname.innerHTML="<img src="...>"
Else
...
End If