0

以下のコードを使用して、グリッドビューにドロップダウンリストをバインドして表示しています。ただし、データベーステーブルに2番目または3番目のアイテムがあるかどうかに関係なく、常に最初のアイテムが表示されます。

    private void BindData1()
    {
        DataSet7TableAdapters.sp_getall_trv_config_masterTableAdapter TA = new DataSet7TableAdapters.sp_getall_trv_config_masterTableAdapter();
        DataSet7.sp_getall_trv_config_masterDataTable DS = TA.GetData();
        if (DS.Rows.Count > 0)
        {
            GridView2.DataSource = DS;
            GridView2.DataBind();



            }
        }

protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.Footer)
        {
            Control ctrl = e.Row.FindControl("DDL_STATUS_FT");
            if (ctrl != null)
            {
                DropDownList dd = ctrl as DropDownList;
                DataSet7TableAdapters.sp_getall_trv_masterTableAdapter TA = new DataSet7TableAdapters.sp_getall_trv_masterTableAdapter();
                DataSet7.sp_getall_trv_masterDataTable DS = TA.GetData();
                dd.DataTextField = "fld_TName";
                dd.DataValueField = "fld_id";
                dd.DataSource = DS;
                dd.DataBind();
            }

        }
}

デザインコード:

  <asp:TemplateField ItemStyle-Width="100px" HeaderText="TYPE">
                    <ItemTemplate>
                        <asp:DropDownList ID="DDL_STATUS" runat="server" AutoPostBack="true" Enabled="false" >
                        </asp:DropDownList>
                    </ItemTemplate>
                    <EditItemTemplate>
                        <asp:DropDownList ID="DDL_edit_STATUS" runat="server" AutoPostBack="true">
                        </asp:DropDownList>
                    </EditItemTemplate>
                    <FooterTemplate>
                        <asp:DropDownList ID="DDL_STATUS_FT" runat="server" AutoPostBack="true">
                        </asp:DropDownList>
                    </FooterTemplate>
                </asp:TemplateField>

保存データを選択した値で表示したい。ただし、最初のアイテムは常にドロップダウンリストに表示されます。これをするのを手伝ってください。

4

3 に答える 3

2

これを試してみてください:

                    DropDownList dd = ctrl as DropDownList;
                    DataSet7TableAdapters.sp_getall_trv_masterTableAdapter TA = new DataSet7TableAdapters.sp_getall_trv_masterTableAdapter();
                    DataSet7.sp_getall_trv_masterDataTable DS = TA.GetData();
                    dd.DataTextField = "fld_TName";
                    dd.DataValueField = "fld_id";
                    dd.DataSource = DS;
                    dd.DataBind();
                    dd.SelectedValue= "";//Put your value here which needs to be selected
于 2012-09-25T10:49:06.110 に答える
0

データベースに保存したものを元に戻していないindex/valueため、バインドするたびにデフォルトで最初のアイテムが表示されます

于 2012-09-25T10:28:05.197 に答える
0

'SelectedValue'次のように、クライアント側のドロップダウンリストに設定できます

SelectedValue='<%# Eval("fieldname") %>'
于 2012-09-25T10:39:53.833 に答える