【发布时间】:2015-03-03 22:01:59
【问题描述】:
我有一个奇怪的问题,我找不到答案。 我有一个带有一些 ItemTemplate 的 GridView 以及 2 个单独的 EditItemTemplates 内的两个 DropDownLists。
它们看起来都一样,但只有一个在页面加载时被识别,而另一个不是,我收到错误消息:“当前上下文中不存在该名称”
我想用数据库中的数据填充两个 DropDownLists,并使 SelectedValue 成为标签的值。 HallsDDL 工作正常,第二个不行。
我在 Google 上看到了一些类似的问题,但找不到答案。
我的aspx:
<asp:GridView ID="gv" runat="server" AllowPaging="true" AllowSorting="true" Font-Size = "13pt" RowStyle-CssClass="cssWidth" HorizontalAlign="Center" AutoGenerateColumns="false"
AlternatingRowStyle-BackColor="#EEEEEE"
OnPageIndexChanging="myGridView_PageIndexChanging"
OnSorting="myGridView_Sorting"
onrowcancelingedit="GridView1_RowCancelling"
onrowediting="GridView1_RowEditing"
onrowupdating="GridView1_RowUpdating" OnRowCommand="GridView1_RowCommand" OnRowDataBound = "RowDataBound">
<Columns>
<asp:TemplateField HeaderText="מזהה">
<ItemTemplate>
<asp:LinkButton PostBackUrl='<%# "~/Events_workers.aspx?RowIndex=" + Container.DataItemIndex %>' runat="server" ID="Order_Id" Text='<%#Eval("Order_Id")%>' CssClass="cssWidth"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="שם פרטי" SortExpression="First_Name" >
<ItemTemplate>
<asp:Label runat="server" ID="First_Name" Text='<%#Eval("First_Name") %>' CssClass="cssWidth"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="שם משפחה" SortExpression="Last_Name">
<ItemTemplate>
<asp:Label runat="server" ID="Last_Name" Text='<%#Eval("Last_Name") %>' CssClass="cssWidth"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="תאריך אירוע">
<ItemTemplate>
<asp:Label runat="server" ID="EventDate" Text='<%#Eval("EventDate") %>' CssClass="cssWidth" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" CssClass="cssWidth" ID="txtDate" Text='<%#Eval("EventDate") %>' MaxLength="15" onkeypress='validate(event)' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="אולם">
<ItemTemplate>
<asp:Label runat="server" ID="HallName" Text='<%#Eval("HallName") %>' CssClass="cssWidth" />
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="HallName" runat="server" Text='<%# Eval("HallName")%>' Visible = "false"></asp:Label>
<asp:DropDownList ID="HallsDDL" runat="server" CssClass="cssWidth"></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="סוג אירוע">
<ItemTemplate>
<asp:Label runat="server" ID="Event_Name" Text='<%#Eval("Event_Name") %>' CssClass="cssWidth" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="תפריט">
<ItemTemplate>
<asp:Label ID="Menu_Name" runat="server" Text='<%#Eval("Menu_Name") %>' CssClass="cssWidth" />
</ItemTemplate>
<EditItemTemplate>
<asp:Label ID="Menu_Name" runat="server" Text='<%# Eval("Menu_Name")%>' Visible = "false"></asp:Label>
<asp:DropDownList ID="menuDDL" runat="server" CssClass="cssWidth" ></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="כמות אורחים" SortExpression="Guest_Amount">
<ItemTemplate>
<asp:Label runat="server" ID="Guest_Amount" Text='<%#Eval("Guest_Amount") %>' CssClass="cssWidth" />
</ItemTemplate>
<EditItemTemplate>
<asp:TextBox runat="server" CssClass="cssWidth" ID="txtAGuest_Amount" Text='<%#Eval("Guest_Amount") %>' />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnEdit" Text="ערוך" runat="server" CommandName="Edit" />
</ItemTemplate>
<EditItemTemplate>
<asp:LinkButton ID="btnUpdate" Text="עדכן" runat="server" CommandName="Update" />
<asp:LinkButton ID="btnCancel" Text="בטל" runat="server" CommandName="Cancel" />
</EditItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="btnDelete" Text="בטל אירוע" runat="server" CommandName="DeleteRecord" CausesValidation="False"
CommandArgument='<%#Eval("Order_Id") %>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
背后的代码:
protected void Page_Load(object sender, EventArgs e)
{
CultureInfo culture = (CultureInfo)CultureInfo.CurrentCulture.Clone();
culture.DateTimeFormat.ShortDatePattern = ("dd/MM/yyyy");
culture.DateTimeFormat.LongTimePattern = "";
Thread.CurrentThread.CurrentCulture = culture;
dal.check_orders_date();
/* if (Session["admin"] == null)
{
Response.Redirect("Admin_Login.aspx");
}*/
string state = (string)ViewState["state"];
name.Text = "אירועים עתידיים:";
DataTable Halls = new DataTable();
DataTable Menus = new DataTable();
if (!IsPostBack)
{
Halls = dal.get_halls();
hallsDDL.DataSource = Halls;
hallsDDL.DataValueField = "HallName";
hallsDDL.DataBind();
Menus = dal.get_Menus();
//menuDDL.DataSource = Menus;
//menuDDL.DataValueField = "Menu_Name";
//menuDDL.DataBind();
if (state != "edit" || ViewState["myDataTable"] == null)
{
BindGridData();
}
}
if (Request.QueryString["fname"] == null && Request.QueryString ["lname"] == null && Request.QueryString["fdate"] == null && Request.QueryString["tdate"] == null && Request.QueryString["hall_id"] != null)
{
System.Data.DataTable ds = dal.Get_orders_by_hall(Convert.ToInt32 (Request.QueryString["hall_id"]));
SetViewState(ds);
gv.DataSource = ds;
gv.DataBind();
}
}
在 hallsDDL 后面的代码中识别出 menuDDL 不存在。 我检查并重新检查了所有内容,但似乎找不到问题。
谢谢
【问题讨论】: