2

今日、クライアントのプロジェクトの1つに取り組んでいるときに、解決策を見つけられない問題を思いつきました。だから私はあなたたちにそれを投げています。

データバインドされたGridViewコントロールを使用しています。同じもののSqlDataSourceのコードは次のとおりです。

<asp:SqlDataSource ID="SqlDataSource_familyMembers" runat="server" 
     ConnectionString="<%$ ConnectionStrings:VBAT_dbConnectionString %>" 
     SelectCommand="
       select 
          a.memberid,a.fristName,a.lastname,a.gender,a.dob,
          b.relation as [Relation with Family Head],
      c.districtname,d.statename,e.countryname,a.mobno,f.occupation,a.ismaried 
      from 
         family_members_info as a
      left outer join
         master_relations as b
      on
         a.RelationWithFamilyHead=b.relationid
      join
         master_district as c
      on 
         a.cadistrict=c.districtid
      join
         master_state as d
      on 
        a.castate=d.stateid
     join
        master_country as e
     on 
        a.cacountry=e.countryid
     join
       master_occupation as f
     on
       a.occupation=f.occupationid
     where 
         familyid=@familyid" 
   UpdateCommand="
         update 
             family_members_info 
         set                    
            firstName=@firstname, lastname=@lastName, dob=@dob,
            relationwithfamilyhead=@relationwithfamilyhead,cadistrict=@cadistrict, 
            castate=@castate, cacountry=@cacountry,mobno=@mobno,occupation=@occupation 
         where 
            memberID=@memberID">
  <SelectParameters>                    
    <asp:ControlParameter ControlID="HiddenField1" Name="familyid"   PropertyName="Value" />
  </SelectParameters>
  <UpdateParameters>
      <asp:Parameter Name="firstname"  />
      <asp:Parameter Name="lastName" />
      <asp:Parameter Name="dob" />
      <asp:Parameter Name="relationwithfamilyhead" />
      <asp:Parameter Name="cadistrict" />
      <asp:Parameter Name="castate" />
      <asp:Parameter Name="cacountry" />
      <asp:Parameter Name="mobno" />
      <asp:Parameter Name="occupation" />
      <asp:Parameter Name="memberID" />
   </UpdateParameters>
</asp:SqlDataSource>

Selectクエリからわかるように、データはいくつかの関連するテーブルからのものであり、ユーザーがデータを編集する場合を除いて、すべてが正常に機能します。

すべての列について、デフォルトでは、GridViewはテキストボックスを表示しますが、外部キーである列のDropdownListを表示する必要があります。

誰かが私にこれに対する可能な解決策を導くことができれば、私は大きな助けになるでしょう。

4

1 に答える 1

1

探しているものを達成するには、次の高レベルの手順に従います。

  1. グリッドビューのテンプレート化-グリッドビューTemplateFieldの各列のアイテムを作成しますItemTemplateEditItemTemplate
  2. idフィールドには、コントロールタイプを指定しますEditItemTemplateDropDownList
  3. SqlDataSourceまたは任意の他のデータバインディングメソッドを作成し、それをにバインドしてDropDownList、必要なテーブルからIDと値を取得します
  4. DataValueFieldDropDownListIDに設定しDataTextField表示値に設定します

上記のポイントの実際の例を次に示します-sqldatasourceから入力されたフィルタリングドロップダウンリスト

于 2013-02-25T07:13:20.657 に答える