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();
}