在repeater asp.net中查找用户控件的下拉值

时间:2017-08-16 06:19:19

标签: c# asp.net repeater findcontrol

我正在尝试从用户控件中访问DropDownList选择的值,该控件位于Repeater的ItemTemplate内。

string ddlBeneficiaryTeam2 = ((UserControl_TeamFilter)(rptBeneficiaries.FindControl("ucBeneficiaryTeam"))).TeamSelectedValue; 
  • rptBeneficiaries -Repeater control
  • ucBeneficiaryTeam -User control
  • ddlteam -DropDownList将其命名为用户控件。

2 个答案:

答案 0 :(得分:0)

您可以使用FindControl通过上移控制树来找到正确的控件。

DropDownList drp = Repeater1.Items[i].FindControl("WebUserControl1").FindControl("DropDownList1") as DropDownList;

首先,您通过索引访问正确的转发器项,然后通过用户控件的ID访问,然后使用控件内的DropDownList。

答案 1 :(得分:0)

首先将其分为两部分 在您的 Usercontrol 中首先创建公共属性,代表 DropDown 的价值

public class UserControl_TeamFilter : System.Web.UI.UserControl
{
   ....
   public string TeamSelectedValue
   {
       get { return ddlteam.SelectedValue; }
   }
   ...

2 - 现在您只需要在转发器项目中找到并投射 Usercontrol ,如下所示

(rptBeneficiaries.Items[i].FindControl("ucBeneficiaryTeam") as UserControl_TeamFilter).TeamSelectedValue