2011-03-25 53 views
0

我有一個TextBoxGridview沒有數據源的編程式文本框到GridView

<asp:Textbox ID="TextBox1" runat="server" ></asp:Textbox> 

<asp:GridView ID="GridView1" runat="server"> 
     </asp:GridView> 

沒有DataSource,我怎麼能加入我的.cs文件programaticly只是TextBox1.Text到GridView的第一列?

GridView1.Columns[1].ToString() = TextBox1.Text like that example 
+0

是否希望每行在第一列中具有該值? – 2011-03-25 14:38:15

+1

'GridView1.Columns [1]'指的是第二列,而不是第一列 – Alex 2011-03-25 14:39:02

+0

@Revinder不,第一列第一列。當我添加另一個文本時,它應該是第一列第二行。 – 2011-03-25 14:42:19

回答

1

您是否正在尋找一種在沒有數據時處理信息的方式?如果是這樣,您可以在GridView中使用EmptyDataTemplate並以編程方式訪問它以顯示TextBox的值。

如果沒有「綁定」數據要使用,GridView將需要某種數據源,至少有一個條目才能正常運行和顯示。但是,您可以輕鬆添加一些虛擬數據以啓用GridView的功能,然後您可以將其調整爲您的內容。

假設您有一個按鈕來啓動回發(或者您可以使用TextBox的OnTextChanged事件),只需添加以下代碼即可。

List<string> dummyList = new List<string>(){""}; 
GridView1.DataSource = dummyList; 
GridView1.DataBind(); 

注:列表對象是隻使用一個佔位符爲GridView數據源的一個快速簡便的方法。如果你真的打算使用多列,我建議用你需要的列創建一個簡單的DataTable,插入和清空行,然後與之綁定。它消除了以編程方式創建所有列的麻煩。

然後在你的GridView的RowDataBound事件中,你可以儘可能的使用GridView。

if (e.Row.RowType -= DataControlRowType.DataRow) 
{ 
    e.Row.Cells(0).Text = TextBox1.Text; 
} 
1

好的,試試這個。這將在第一行的第一個單元格設置爲您的文本框的值:

GridView1.Rows[0].Cells[0].Text = TextBox1.Text; 

記住列和行與從零開始的索引訪問,所以第二行的第一個單元格像這樣訪問:

GridView1.Rows[1].Cells[0].Text 
+0

我收到此代碼的錯誤「」索引超出範圍。必須是非負數且小於集合的大小。 參數名稱:索引「」 – 2011-03-25 14:51:48

+1

@SonerGönül:在嘗試設置任何值之前,GridView實際上是否包含任何行和列?否則,您可能需要先創建它們。 – 2011-03-25 14:54:17

+1

我認爲你是對的。如果你在沒有任何東西的情況下放置TBox,GridView會發出異常。 – 2011-03-25 15:06:12

相關問題