0

DropDownLists我的客户表中有几个GridView绑定了我的数据库中的选定值。

我注意到,如果我只有一个客户并且想要编辑该客户的性别,这是不可能的,因为我DropDownLists使用 SELECT DISTINCT Gender FROM Customer 填充,而我的第一个客户是 Herr 或 Frau,我只能从该值中进行选择。

我在想我可以使用联合选择select Gender from ( select Gender = 'Herr' union select Gender = 'Frau' )as Gender 来解决这个问题,以带来两种选择,但随后我收到此错误消息 'DropDownList1'** has a SelectedValue 这是无效的,因为它不存在于项目列表中**

所以我的问题是如何添加一些DropDownLists尚未在 DB 中提供的替代方案并仍然绑定SelectedValue

<EditItemTemplate>
                <asp:DropDownList ID="DropDownList3" runat="server" DataSourceID="SqlDataSource1" DataTextField="Gender" DataValueField="Gender" SelectedValue='<%# Bind("Gender") %>'>
                </asp:DropDownList>
                <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:EventConnectionString %>" SelectCommand="SELECT DISTINCT [Gender] FROM [Customer]"></asp:SqlDataSource>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("Gender") %>'></asp:Label>
            </ItemTemplate>

感谢您的回答,我需要在后面的代码中更改什么才能使其正常工作?

这是我的代码。

protected void Page_Load(object sender, EventArgs e)
        {

        }

    protected void lbInsert_Click(object sender, EventArgs e)
    {
        Event.InsertParameters["Gender"].DefaultValue = ((DropDownList)GridView1.FooterRow.FindControl("ddlGender")).SelectedValue;
        Event.InsertParameters["LastName"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtLastName")).Text;
        Event.InsertParameters["FirstName"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtFirstName")).Text;
        Event.InsertParameters["Street"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtStreet")).Text;
        Event.InsertParameters["HouseNr"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtHouseNr")).Text;
        Event.InsertParameters["Zip"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtZip")).Text;
        Event.InsertParameters["City"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtCity")).Text;
        Event.InsertParameters["Phone"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtPhone")).Text;
        Event.InsertParameters["Email"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtEmail")).Text;
        Event.InsertParameters["Company"].DefaultValue = ((TextBox)GridView1.FooterRow.FindControl("txtCompany")).Text;
        Event.InsertParameters["Active"].DefaultValue = ((DropDownList)GridView1.FooterRow.FindControl("ddlActive")).SelectedValue;

        Event.Insert();
    }
4

0 回答 0