当所选值不镜像sql数据时,我如何在Gridview编辑模板中使用下拉列表
本文关键字:编辑 Gridview 下拉列表 镜像 sql 数据 | 更新日期: 2023-09-27 18:17:59
我在gridview中使用了一些下拉菜单,并且已经能够将下拉菜单中的"星期一"(为了用户友好)转换为插入时的简单"1"(因此我可以轻松地执行sql日期时间查询)。现在我需要能够做相反的编辑模板上的网格视图。当我点击编辑,现在我得到错误"所选的值不存在于控件"。我理解这样做的原因是因为值是1
而不是Monday
。下面是我解决这个问题的失败尝试:
protected void EditFoodItem(object sender, GridViewEditEventArgs e)
{
string Day = ((DropDownList)gvMainView.FooterRow.FindControl("ddlDay")).SelectedValue;
switch (Day)
{
case "1":
Day = "Monday";
break;
case "2":
Day = "Tuesday";
break;
case "3":
Day = "Wednesday";
break;
case "4":
Day = "Thursday";
break;
case "5":
Day = "Friday";
break;
case "6":
Day = "Saturday";
break;
case "7":
Day = "Sunday";
break;
}
}
如果gridview中的值为1
,如何将选中的值转到Monday
…这句话似乎很简单,但其实是在影射我。
这是控制
<EditItemTemplate>
<asp:DropDownList ID="ddlDay" SelectedValue='<%# Bind("Day") %>' Text='<%# Bind("Day") %>' runat="server">
<asp:ListItem>Monday</asp:ListItem>
<asp:ListItem>Tuesday</asp:ListItem>
<asp:ListItem>Wednesday</asp:ListItem>
<asp:ListItem>Thursday</asp:ListItem>
<asp:ListItem>Friday</asp:ListItem>
<asp:ListItem>Saturday</asp:ListItem>
<asp:ListItem>Sunday</asp:ListItem>
</asp:DropDownList>
</EditItemTemplate>
你不需要在代码中这样做;ListItem
同时具有Text
和Value
属性:
<asp:DropDownList ID="ddlDay" runat="server" SelectedValue='<%# Bind("Day") %>'>
<asp:ListItem Value="1" Text="Monday" />
<asp:ListItem Value="2" Text="Tuesday" />
<asp:ListItem Value="3" Text="Wednesday" />
<asp:ListItem Value="4" Text="Thursday" />
<asp:ListItem Value="5" Text="Friday" />
<asp:ListItem Value="6" Text="Saturday" />
<asp:ListItem Value="7" Text="Sunday" />
</asp:DropDownList>
SelectedValue
将返回日期,列表将显示日期名称。