2011-09-07 24 views
0

我有一个div(RUNAT =服务器)包含中继器,这直放站越来越从数据表回传在ASP不刷新控制值

值时,数据表是空的我做这行的代码在ASP .net函数

divname.innerHTML="<img src="...>" 

在此页面上还有一个asp:按钮,它用值填充数据表。 当按下按钮时,上面的行不执行,页面offcourse正在做回发,但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

假设的DataTable命名的变量是一个System.Data.DataTable,请记住,它只是存在,在的情况下有数据sibgle运行页面生命周期。如果页面被重新生成(无论是通过回发还是初始加载页面),DataTable在加载之前为空。

但是,Repeater对象存储在ViewState中。如果前一次加载中有行,则IT将在回发中拥有值。

而不是查看表中的行数,您应该查看Repteater.Items.Count。

If repeater.Items.Count = 0 Then 
    divname.innerHTML="<img src="...>"  
Else 
    ... 
End If 
+0

不,你没事吧,我忘了提,在页面加载中有一个回发检查 – baaroz

+0

OK。我认为你可以忽略一切,但第三点。我再次重新读取您的代码示例,前两个实际上并不适用,因此我将删除它们。我认为第三点是正确的问题。 – David

+0

编辑删除不相关的点,并澄清我认为是相关的点。 – David