我在转发器内绑定DropDownList
,下面是我的标记
<asp:Repeater ID="Repeater2" runat="server"
onitemdatabound="Repeater2_ItemDataBound">
<HeaderTemplate>
<asp:DropDownList ID="DropDownList8" runat="server">
<asp:ListItem>Select</asp:ListItem>
<asp:ListItem>Left</asp:ListItem>
<asp:ListItem>Right</asp:ListItem>
<asp:ListItem>SubString</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList7" runat="server">
<asp:ListItem>1</asp:ListItem>
<asp:ListItem>2</asp:ListItem>
<asp:ListItem>3</asp:ListItem>
</asp:DropDownList>
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="DropDownList2" runat="server">
</asp:DropDownList>
<asp:Button ID="Button1" runat="server" Text="Button" />
</HeaderTemplate>
<FooterTemplate>
<br />
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</FooterTemplate>
</asp:Repeater>
protected void Repeater2_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
try
{
if (e.Item.ItemType == ListItemType.Header)
{
DataTable dt = new DataTable();
dt = Common.LoadExample();
DropDownList ddl = (DropDownList)e.Item.FindControl("DropDownList2");
ddl.DataSource = dt;
ddl.DataTextField = "Name";
ddl.DataValueField = "Name";
}
}
catch (Exception ex)
{
throw;
}
}
但我无法填写下拉列表,因为断点正在此处跳过e.Item.ItemType == ListItemType.Header
。我该如何解决这个问题?
答案 0 :(得分:0)
对于标题行绑定,请将代码从ItemDataBound
移至ItemCreated
- 更新回答 -
只有在没有项目模板的情况下添加ItemTemplate
时,这才会起作用,设置空白数据源不会以预期的方式绑定网格。
请添加项目模板并绑定一些虚拟数据