asp中的回发不刷新控制值

时间:2011-09-07 16:47:19

标签: asp.net

我有一个包含转发器的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">

感谢您的帮助

1 个答案:

答案 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