2012-02-23 72 views
1

我有一個簡單的datalist與下拉列表和文本框。我們如何處理gridview/datalist中的dropdownlist的onselectedindexchanged事件?

當下拉列表選擇指數的變化,我想的值加載到在該列表框項目文本框(即,在該特定行文本框)。

<ItemTemplate> 
    <asp:DropDownList runat="server" 
    ID="ddlCategory" AutoPostBack="true" 
    DataTextField="category" 
    DataValueField="category_code" 
    OnSelectedIndexChanged="ddlCategory_SelectedIndexChanged" />      
    <br /> 
    Code<asp:TextBox 
     runat="server" 
     ID="txtOutputCode" 
     Text='<%# Bind("output_code") %>' /> 
</ItemTemplate> 

我該怎麼做?

我面臨的挑戰是如何找到相應的文本框來更新。

E.g.對於一個按鈕,我會傳遞一個命令名和命令參數。然後,我會在gridview或datalist中處理事件以查找相應的文本框並更新文本。如果選擇了一個下拉列表的索引更改,我們可以做些什麼?

謝謝!

回答

3

我想這應該工作。試試這個...

protected void ddlCategory_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    var ddlList= (DropDownList)sender; 
    var row = (GridViewRow)ddlList.NamingContainer; 
    //get the Id of the row 
    var Id = Convert.ToInt32(((Label)row.FindControl("IdColumn")).Text); 
} 
+0

它的工作!謝謝! – Zesty 2012-02-23 08:09:51

+0

,datalist使用DatalListItem代替GridViewRow。 – 2012-09-01 10:00:42

1

你應該做的是:

private SomeObject o = new SomeObject(); 

private void o_SomeEvent(...) { 
} 

public TheConstructor() { 
    this.o.SomeEvent += new SomeHandler(o_SomeEvent); 
} 

這意味着你必須創建一個新的下拉列表和事件附加到你在的ItemDataBound在GridView有下拉列表

相關問題