asp.net
  • gridview
  • user-controls
  • 2011-08-11 16 views 0 likes 
    0

    Usercontrol(ドロップダウン)を作成し、GridViewのEditTemplate内で使用しました。ドロップダウン(UserControl)のSelectedValueがasp.netのGridView内で選択されていません

    <EditItemTemplate> 
        <eluc:AddrType ID="ucIssuingAuthorityEdit" runat="server" AddressType="139" AddressList='<%# PhoenixRegistersAddress.ListAddress("139") %>' 
        AppendDataBoundItems="true" CssClass="dropdown_mandatory" SelectedAddress='<%# DataBinder.Eval(Container,"DataItem.FLDISSUINGAUTHORITY") %>' /> 
    </EditItemTemplate> 
    

    SelectedAddressは、ドロップダウンのSelectedValueを設定するプロパティです。通常のaspxページ内で同じusercontrolを使用すると、選択されています。しかし、GridViewの内部は選択されていません。

    選択のためのユーザーコントロールのコードは次のとおりです。ここで

    protected void Page_Load(object sender, EventArgs e) 
    { 
        if (!IsPostBack) 
        { 
         ddlAddressType.DataSource = PhoenixRegistersAddress.ListAddress(addresstype); 
         ddlAddressType.DataBind(); 
    
         foreach (ListItem item in ddlAddressType.Items) 
         { 
          if (item.Value == _selectedValue.ToString()) 
          { 
           item.Selected = true; 
           break; 
          } 
         }   
    
        } 
    } 
    

    財産SelectedAddress

    public string SelectedAddress 
    { 
        get 
        { 
         return ddlAddressType.SelectedValue; 
        } 
        set 
        { 
         if (value.Trim().Equals("")) 
          return; 
         _selectedValue = Int32.Parse(value); 
         foreach (ListItem item in ddlAddressType.Items) 
         { 
          if (item.Value == _selectedValue.ToString()) 
          { 
           item.Selected = true; 
           break; 
          } 
         }   
    
        } 
    } 
    

    それはそうされている理由いずれかが私を提案することができます。

    ありがとうございます。

    +0

    あなたはすべてのポストバックでのみ '!Page.IsPostback'場合にGridViewをバインドしていますか? –

    +0

    すべてのポストバックで私はそれをバインドしています。 –

    +0

    GridViewでSelectedAddressをどこに設定していますか? –

    答えて

    0

    最後に、私は解決策を持って、他の人の参考のためにここに同じことを提供する何ができるかが表示されます知らせ助けを必要とする場合。

    GridViewのRowDataBound()メソッドの中で、そのDataItemのDataRowViewを取得し、UserControlのSelectedValueをDataFieldに設定します。ここで

    は、コード..です

    protected void gv_RowDataBound(Object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) 
    { 
        if (e.Row.RowType == DataControlRowType.DataRow) 
        {    
         UserControlXXX ucXXX = (UserControlXXX)e.Row.FindControl("ucXXXEdit"); 
         DataRowView drv = (DataRowView)e.Row.DataItem; 
         if (ucXXX != null) ucXXX.SelectedXXX = drv["FLDXXXCODE"].ToString(); 
        } 
    } 
    
    0

    データソースにリンクされている選択したアドレスがありますか。

    次に、ddlistを取得して2番目のデータソースにリンクして、表示したいものを表示します。この場合、すべてを表示します。このデータソース内で、選択したパラメータをselectedaddressのドロップダウンリストに変更する必要があります

    これは私がvbで鉱山を行った方法ですが、それはどのようにCのaffraidで動作するのでしょうか?ポイント:)

    <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:IWSRiskAssessmentConnectionString3 %>" 
         SelectCommand="SELECT * FROM [tblCompany] WHERE ([compDataID] LIKE '%' + @compDataID + '%')"> 
         <SelectParameters> 
          <asp:ControlParameter ControlID="CompanyDD" DefaultValue="%" Name="compDataID" PropertyName="SelectedValue" 
           Type="String" /> 
         </SelectParameters> 
        </asp:SqlDataSource> 
    

    あなたが、それ以上に私は私が

    関連する問題