【问题标题】:Find dropdown values on user control inside repeater asp.net在中继器 asp.net 内的用户控件上查找下拉值
【发布时间】:2018-01-24 04:04:30
【问题描述】:

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

string ddlBeneficiaryTeam2 = ((UserControl_TeamFilter)(rptBeneficiaries.FindControl("ucBeneficiaryTeam"))).TeamSelectedValue; 
  • rptBeneficiaries - 中继器控制
  • ucBeneficiaryTeam - 用户控制
  • ddlteam -DropDownList 在用户控件中为其命名。

【问题讨论】:

  • 我需要访问这个ddlTeam选择值这里是控件ID:ctl00_cphMain_rptBeneficiaries_ctl00_ucBeneficiaryTeam_ddlTeam

标签: c# asp.net repeater findcontrol


【解决方案1】:

您可以使用 FindControl 沿着控件树向上查找正确的控件。

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

首先通过索引访问正确的中继器项,然后通过用户控件的 ID 和控件内的 DropDownList。

【讨论】:

    【解决方案2】:

    先把它分成两部分
    1-首先在您的 Usercontrol 中创建代表 DropDown

    价值的 public 属性
    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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多