【问题标题】:Set dropdown list inside repeater在中继器内设置下拉列表
【发布时间】:2015-04-19 20:52:13
【问题描述】:

我在运行时绑定的asp.net 页面上有一个Repeater 控件。 asp.net 中继器控件的项目模板内有一个下拉列表。

我想知道是否可以在设计时添加列表项。我可以在运行时绑定下拉菜单,但不确定是否可以在设计时进行。

这是我迄今为止尝试过的,但没有运气;

 <asp:DropDownList ID="ddlContact" runat="server">
     <asp:ListItem Text="select" Value="0" Selected="True" ></asp:ListItem>
     <asp:ListItem Text="phone" Value='<%#DataBinder.Eval(Container.DataItem, "InspectorID").ToString() + "|phone" %>' ></asp:ListItem>
     <asp:ListItem Text="email" Value='<%#DataBinder.Eval(Container.DataItem, "InspectorID").ToString() + "|email" %>' ></asp:ListItem>
  </asp:DropDownList>

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    不,我认为不可能做那样的事情。无论如何,既然您知道您只有两个值,那么需要绑定一个 Id 吗?你可以简单地写

    <asp:DropDownList ID="ddlContact" runat="server">
     <asp:ListItem Text="select" Value="0" Selected="True" ></asp:ListItem>
     <asp:ListItem Text="phone" Value="phone" ></asp:ListItem>
     <asp:ListItem Text="email" Value="email" ></asp:ListItem>
    

    然后使用它。

    您的每个中继器项目都有自己的下拉列表,其中包含您可以根据需要阅读和使用的自己选择的值。

    【讨论】:

    • 我怎样才能找出哪个检查员有哪个选定的值?
    • 循环中继器项目并为每个项目调用 (item.FindControl("ddlContact") as DropDownList).SelectedValue。您需要答案中的代码以便更清楚吗?
    • 循环会给我一个选定的值,但它不会告诉我检查员 ID。
    • 您必须将 id 存储在转发器内的另一个控件中,例如您可以以相同方式引用的隐藏字段(findControl 等...)
    • 抱歉不是很清楚。检查员 ID 已经在表格的另一个单元格中。第一个单元格有检查员 ID,另一个有下拉列表。
    【解决方案2】:

    使用 onitemdatabound 方法为转发器中的每个项目绑定项目特定数据:https://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.repeater.onitemdatabound%28v=vs.110%29.aspx

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-07-12
      • 2011-03-30
      • 1970-01-01
      • 1970-01-01
      • 2012-02-11
      • 2019-04-18
      • 1970-01-01
      相关资源
      最近更新 更多