0

データベースから選択した値をバインドする from customer テーブルDropDownListsにいくつかあります。GridView

顧客が 1 人だけで、その顧客の性別を編集したい場合DropDownLists、SELECT DISTINCT Gender FROM Customer を入力すると、最初の顧客は Herr または Frau のいずれかであり、その値からしか選択できないため、編集できないことに気付きました。

select Gender from ( select Gender = 'Herr' union select Gender = 'Frau' )as Gender ユニオン選択を使用して両方の選択肢を表示することでこの問題を解決できると考えていましたが、このエラー メッセージが表示されます。

だから私の質問は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