当所选值不镜像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> 

当所选值不镜像sql数据时,我如何在Gridview编辑模板中使用下拉列表

你不需要在代码中这样做;ListItem同时具有TextValue属性:

<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将返回日期,列表将显示日期名称。