2011-01-26 28 views
2

自從我將DataTable移動到不同的函數後,出現以下錯誤。通過一切手段,如果你有風格/標準的提示,我也歡迎,以及aspx編碼非常新。任何想法可能會造成這種情況?當它不是它自己的功能時,它並沒有發生過。這是一個局部變量問題嗎?DataSource和DataSourceID都在listview中定義,刪除一個源

這裏有一個結合,並在錯誤被突出顯示的代碼的代碼:

testDAO tda = new testDAO(); 
DataTable testTable = new DataTable("TestView"); 
testTable = tda.GetTestTable(); 
TestView.DataSource = testTable; 
TestView.DataBind(); 

這裏的GetTestTable()的代碼:在aspx文件

public DataTable GetTestTable() 
{ 
    DataTable testTable = new DataTable("TestView"); 
    testTable.Columns.Add("testdata", typeof(String)); 
    testTable.Columns.Add("user", typeof(String)); 
    testTable.Columns.Add("date", typeof(String)); 
    DataRow arow = testTable.NewRow(); 
    arow["testdata"] = "test data"; 
    arow["user"] = "System"; 
    arow["date"] = ""; 
    testTable.Rows.Add(arow); 
    return testTable; 
} 

列表視圖:

<asp:ListView ID="TestView" runat="server"> 
       <ItemTemplate> 
        <tr id="row" runat="server" class='<%# Container.DataItemIndex % 2 == 0 ? "row" : "altrow" %>'> 
         <td align="left"> 
          <%# Eval("testdata") %> 
         </td> 
         <td align="center"> 
          <%# Eval("user") %> 
         </td> 
         <td align="center"> 
          <%# Eval("date") %> 
         </td> 
        </tr> 
       </ItemTemplate> 
       <LayoutTemplate> 
        <table class="system"> 
         <tr> 
          <th> 
           Test Data 
          </th> 
          <th> 
           User 
          </th> 
          <th> 
           Date 
          </th> 
         </tr> 
         <tr id="itemPlaceholder" runat="server" /> 
        </table> 
       </LayoutTemplate> 
      </asp:ListView> 

回答

2

我認爲它是由於一些命名衝突,嘗試重命名你要麼DataTable的名稱創建一個DataTable,然後分配一個DataTable它或ListView ID到其他東西如TestListView。你也有一個額外的行用於創建新DataTable那是一個redundency爲你分配表的方法GetTestTable

編輯

返回如果您仍然有一些問題,那麼一些別的地方,你可能會被分配通過設置DataSourceID的一些數據源的數據源提供,然後執行財產以後這樣的:

TestView.DataSourceID = null; 
testDAO tda = new testDAO(); 
DataTable testTable = tda.GetTestTable(); 
TestView.DataSource = testTable; 
TestView.DataBind(); 

設置的DataSourceID爲null肯定會解決這個問題..

+0

我已經更新了我的答案 – 2011-01-26 17:25:02

1

id將其改寫爲此

testDAO tda = new testDAO(); 
TestView.DataSource = tda.GetTestTable(); 
TestView.DataBind(); 

,並應做到這一點 - 世界上沒有其他需要從tda.GetTestTable()

+0

這是有道理的,我試了一下,但它仍然給出相同的確切的錯誤,並向我展示修改的代碼突出顯示。它仍然突出顯示DataBind()行。 – Dexter 2011-01-26 17:22:20

相關問題