2012-02-23 36 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有下拉列表

相关问题