2

だから私はいくつかのGridViewを持っています。行を編集すると、特定の列がラベルから DropDownList に変わります。このドロップダウンの内容は、何らかの SQL データ ソースを介して入力されます。ユーザーは、選択を行って「更新」をクリックすることができます。

ドロップダウンの SelectedValue プロパティを実際に取得するにはどうすればよいですか?

私はこれがうまくいくと思った:

    <asp:GridView ... >
        <Columns>
            ...
                <EditItemTemplate>
                    <asp:DropDownList ID="ServiceCategoriesGvDropDown" AutoPostBack="True" .../>
                </EditItemTemplate>
                <ItemTemplate>
                    <asp:Label ... />
                </ItemTemplate>
            </asp:TemplateField>
            ...
        </Columns>
    </asp:GridView>   

そして、それを SqlDataSource の ControlParameter に接続します。

    <UpdateParameters>
        ...
        <asp:ControlParameter ControlID="ServiceCategoriesGvDropDown" PropertyName="SelectedValue" ... />
    </UpdateParameters>

ただし、次の例外が発生します。

System.InvalidOperationException: ControlParameter 'ServiceCategoriesID' でコントロール 'ServiceCategoriesGvDropDown' が見つかりませんでした。

明らかに私のドロップダウンは見つかりません。もしかして、この時点で壊れてしまった?

4

3 に答える 3

3

グリッドの更新イベントでこれを試してください。

 protected void YourGrid_RowUpdating(object sender, GridViewUpdateEventArgs e)
 {
  DropDownList ddl= (DropDownList )YourGrid.Rows[e.RowIndex].FindControl("ddlId");
  string selectedvalue=ddl.selectedvalue;
  //Your update code goes here
 }
于 2012-06-08T06:33:25.147 に答える
0

あなたがする必要があると私が思うのは:

  1. SelectedIndexChangeにイベントを添付DropDownlistしますGridview
  2. SelectedValueそのイベントで をつかみます。
  3. DataSource への参照を取得UpdateParametersし、それぞれのパラメーターにプログラムでSelectedValue.
  4. DataSource のUpdateメソッドを呼び出します。
于 2012-06-07T16:41:24.080 に答える
0

これを試すことができます:

gridviewのIDがgridview1であると仮定します

<asp:ControlParameter ControlID="gridview1$ServiceCategoriesGvDropDown" PropertyName="SelectedValue" />
于 2012-06-07T17:03:39.383 に答える