2009-12-21 65 views
1

我有一個名爲CouncilListView的ListView和一個名爲EmailTextBox的TextBox,它位於ListView中。如何從代碼隱藏中訪問位於列表視圖中的控件?

如何從CodeBehind訪問此TextBox?

我嘗試了一些類似形式的FindControl

this.Page.FindControl("EmailTextBox"); 
this.Page.FindControl("CouncilListView").FindControl("EmailTextBox"); 
this.CouncilListView.Findcontrol("EmailTextBox"); 
this.FindControl("EmailTextBox"); 

,但我得到這個錯誤:

Object reference not set to an instance of an object.

回答

0

我解決這樣說:

protected void CouncilListView_ItemInserted(Object sender, ListViewInsertedEventArgs e) 
{ 
    foreach (DictionaryEntry Emailentry in e.Values) 
    { 
     if (Emailentry.Key == "Email") //table field name is "email" 
     { 
      message.To.Add(new MailAddress(Emailentry.Value.ToString())); 
     } 
    } 
} 
+0

所以你沒有提供任何組成你的列表視圖的實際代碼,然後評論說提供的代碼不起作用?你必須給我們更多的東西;如果我們看不到你的代碼,那麼我們只是在黑暗中發射子彈。 – 2009-12-22 11:11:40

1

這是假設的,因爲我看不到你的整個頁面的代碼隱藏和ListView代碼,但是:

原因是Textbox是Listview的一部分;所以你需要在ListView中找到它。下面是一種可能的做法。

public void GetTextBoxValuesFromListView() 
{ 
    Textbox tb = null; 
    ListViewItem Item = null; 
    foreach (ListViewDataItem item in CouncilListView.Items) 
    { 
     Item = item; 
     tb = ((TextBox) (Item.FindControl("EmailTextBox"))); 
     if (tb.Text != null) 
     { 
      //Do something 
     } 
    } 
} 

我和列表視圖我有一段時間了問題回來的一些問題,他們可能會使用你:

相關問題