2013-02-26 90 views
0

ItemCommand包含有两个重要的领域RepeaterCommandEventArgs:中继器按钮事件

的CommandName

CommandArgument

如何让按钮事件,得到的asp:下拉列表中选择值

<asp:FormView runat="server" id="fwHotelDetails" DataKeyNames="id" OnDataBound="fwHotelDetails_DataBound" OnModeChanging="fwHotelDetails_ModeChanging" > 
    <ItemTemplate> 
     <asp:Repeater runat="server" id="repScore"> 
      <ItemTemplate> 
      <asp:DropDownList ID="ddlnumber" runat="server"> 
                <asp:ListItem>1</asp:ListItem> 
                <asp:ListItem>2</asp:ListItem> 
                <asp:ListItem>3</asp:ListItem> 
               </asp:DropDownList> 

      <asp:LinkButton ID="saveButton" runat="server" CausesValidation="False" CommandName="Edit" CommandArgument='<%# Eval("id")%>' Text="Edit" /> 
      </ItemTemplate> 
     </asp:Repeater> 

     <EditItemTemplate> 
      Test test, anything?? 
     </EditItemTemplate> 

    </ItemTemplate> 
</asp:FormView> 

回答

0

参数RepeaterCommandEventArgs包含一个名为Item的属性。从这家酒店您可以访问方法FindControl()

所以,你的代码应该是这样的:

void repScore_ItemCommand(Object sender, RepeaterCommandEventArgs e) { 
    DropDownList ddl = (DropDownList)e.Item.FindControl("ddlNumber"); 
    string selectedValue = ddl.SelectedValue; 
} 

另外,不要忘记线了你的中继来处理事件:

<asp:Repeater ... OnItemCommand="repScore_ItemCommand" .... > 
+0

但直放站侧的asp:FormView控件 – 2013-02-28 09:35:40

+0

为什么这是一个问题?我在这里错过了什么吗? – 2013-02-28 14:33:51