2012-04-22 17 views
0

私が編集モードに入る際にドロップリストを持っている列とgridviewてきた:今私はSqlDataSourceUpdateParametersにそれを取るためにGridViewの行の更新とドロップリスト

<asp:TemplateField HeaderText="genre" SortExpression="genre"> 
        <EditItemTemplate> 
         <asp:DropDownList ID="DropDownList2" runat="server" 
          DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="name"> 
         </asp:DropDownList> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("genre") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 

をしたい:

<UpdateParameters> 
      <asp:ControlParameter ControlID="DropDownList2" Type="string" PropertyName="SelectedValue" Name="genre" /> 
    </UpdateParameters> 

しかし、私彼は私にエラーメッセージを与えるプレス

Could not find control 'DropDownList2' in ControlParameter 'genre'. 

何か考えているのですか?

+0

ドゥ'@ genre'という名前の変数がありますか? – sarwar026

+0

私の投稿を編集します.. – MTA

+0

'DropDownList2'のIDが変更される可能性があります。確認のためにjavascriptの警告を使ってみてください:' var ddl = document.getElementById( 'DropDownList2');アラート(ddl); ' – Coder

答えて

0

DropDownList2は、グリッドの下にあるネストされたコントロールです。したがって、SqlDataSourceコントロールには、DropDownList2のすべてで可視性がありません。あなたが更新イベントを使用して、背後にあるコードに値を代入しようとすることができ

protected void SqlDataSource_Updating(object sender, SqlDataSourceCommandEventArgs e) 
{ 
    e.Command.Parameters["@genre"].Value = GetDropDownListValue(); 
} 

注:あなたはGetDropDownListValue中にFindControl( "DropDownList2")を使用する必要があります()

関連する問題