2011-09-07 46 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