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

    我創建了一個UserControl(下拉菜單),並在GridView的EditTemplate中使用它。下拉的選擇值(UserControl)沒有在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鏈接到第二個數據源,告訴它你想要顯示什麼,在這種情況下,我想顯示一切。然後在此數據源,您需要更改所選參數的下拉列表中selectedaddresses

    我這是怎麼做礦用VB,也不太清楚它如何使用C IM 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> 
    

    ,如果你需要更多的幫助,讓我知道我會看看我能做些什麼

    相關問題