2009-12-06 63 views
0

這將是一個簡單的表格,其中有一些初始單元格,另一個用戶應該輸入。 我使用DataList控件的ItemTemplate有:從DataList檢索數據

<ItemTemplate> 
    <asp:TextBox ID="CellTextBox" runat="server" Text='<%# Bind("Cell") %>' /> 
</ItemTemplate> 

在代碼中,我重寫的DataBind()這個控制:

public override void DataBind() 
     { 
      MyDataList.DataSource = dataTable; 
      MyDataList.DataBind(); 
     } 

現在這是行不通的。用戶輸入一些單元格並點擊提交按鈕,但dataTable(在這個按鈕的OnClick事件處理方法中)不包含用戶的數據 - 只是初始化。我該怎麼辦?

+0

嗨,也許我錯了,但不應該使用Eval(「單元格」),而不是綁定(「單元格」),如果你想顯示該綁定的值? – Marko 2009-12-07 23:11:58

回答

0

我不確定我完全理解,但我認爲你可能會遇到問題,因爲你需要檢查頁面加載時的回覆。你可能想嘗試這樣的事情:

public void Page_Load(Object sender, EventArgs e) 
{ 
    if (!this.IsPostBack) 
    { 
    myDataList.DataSource = myManager.GetDataTable(); 
    myDataList.DataBind(); 
    } 
} 

這樣,數據只會被綁定到初始頁面加載的控件上,而不是後續的回發請求。每次請求都會調用Page_ Load,這意味着您的Page_Load中的代碼將在按鈕點擊方法之前執行。因此,您需要檢查頁面上的IsPostBack屬性以查看當前請求是否回發。如果是這樣,那麼不要將數據綁定到您的控件上,因爲您將失去用戶輸入的內容。

+0

對不起,我的信息太少了。有詳細信息 – Sevina 2009-12-06 22:36:52

+0

我懷疑ItemTemplate(不是EditItemTemplate)中的控件是否可以使用#Bind並可以檢索用戶輸入的數據 – Sevina 2009-12-06 22:55:18

+0

看起來像是因爲使用Session/In調試模式,Table從Session狀態中獲取。但是我應該怎麼辦? – Sevina 2009-12-06 23:12:44