【发布时间】:2016-08-09 08:48:30
【问题描述】:
这是我的 aspx 页面:我想将一列绑定到 Dropdownlist,但我在后端代码中找不到 Repeater("Repeater1")。请帮忙 !
<asp:GridView ID="gridViewAllotment" CssClass="table table-striped" runat="server"
AutoGenerateColumns="false" GridLines="None" BorderColor="#999999"
BorderStyle="Groove">
<Columns>
<asp:TemplateField HeaderText="Traffic Police">
<ItemTemplate>
<%# Eval("U_Name") %>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Traffic Junction">
<ItemTemplate>
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound = "Test">
<ItemTemplate>
<asp:DropDownList ID="ddl_TrafficJunction" runat="server" DataTextField="Junction">
</asp:DropDownList>
</itemTemplate>
</asp:Repeater>
</itemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
这是后端代码:
公共部分类 JunctionAllotment : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
gridViewAllotment.DataSource = AllotmentLogic.SelectAllTrafficPolices();
gridViewAllotment.DataBind();
Repeater1.DataSource = RepSource();
Repeater1.DataBind();
}
public List<string> RepSource()
{
DataTable data = (DataTable)AllotmentLogic.SelectAllTrafficPolices();
var j = data.Rows.Count;
List<string> rep = new List<string>();
for (int i = 0; i < j ; i++)
{
rep.Add(i.ToString());
}
return rep;
}
public void FillDropdown(DropDownList ddl)
{
DataTable dt = AllotmentLogic.SelectTrafficJunction();
foreach (DataRow row in dt.Rows)
{
if (row["TrafficJunction_Name"].ToString() != null)
{
ddl.Items.Add(row["TrafficJunction_Name"].ToString());
}
}
}
在后端代码中显示“Repeater1”在当前上下文中不存在。
【问题讨论】:
-
我的问题是当我在网格外使用它时中继器获取数据,但即使使用 itemtemplate 后它也无法在网格内工作。
标签: c# gridview drop-down-menu repeater