2015-10-13 57 views
-2

我有一個網格視圖內的下拉列表。這裏是gridview的如何在GridView中設置dropdownlist的選定值?

<asp:GridView ID="gvFabricDetails" runat="server" AutoGenerateColumns="False" ShowFooter="True" CellPadding="4" ForeColor="#333333" GridLines="None" Width="49px" onrowdatabound="gvFabricDetails_RowDataBound" > 
    <Columns> 
     <asp:TemplateField HeaderText="Programme"> 
      <ItemTemplate> 
       <asp:DropDownList ID="ddlProgramme" DataTextField="PROGRAMME_NAME" DataValueField="PROGRAMME_ID" SelectedValue='<%# Bind("PROGRAMME") %>' AppendDataBoundItems="true" runat="server"></asp:DropDownList> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Lot/Style"> 
      <ItemTemplate> 
       <asp:TextBox ID="txtLot" TabIndex="2" Text='<%# Bind("LOT_STYLE") %>' runat="server"></asp:TextBox> 
      </ItemTemplate> 
     </asp:TemplateField> 
     <asp:TemplateField HeaderText="Art#"> 
     <ItemTemplate> 
      <asp:TextBox ID="txtArt" TabIndex="3" Text='<%# Bind("ART") %>' runat="server" ></asp:TextBox> 
     </ItemTemplate> 
    </asp:TemplateField> 
</asp:GridView> 

這裏是後面的代碼現在的問題是內部的GridView其他文本框越來越數據到數據

public DataTable loadFabricInfos() 
{ 
    DataTable dt = new DataTable(); 
    string sql = ""; 

    sql = "SELECT PROGRAMME,LOT_STYLE,ART FROM FABRICISSUE"; 

    OracleCommand objCommand = new OracleCommand(sql); 
    OracleDataAdapter objDataAdapter = new OracleDataAdapter(objCommand); 
    using (OracleConnection strConn = GetConnection()) 
    { 
     try 
     { 
      objCommand.Connection = strConn; 
      strConn.Open(); 
      objDataAdapter.Fill(dt); 
     } 

     catch (Exception ex) 
     { 
      throw new Exception("Error : " + ex.Message); 
     } 

     finally 
     { 
      strConn.Close(); 
     } 
    } 

    return dt; 
} 

綁定。但下拉列表不與數據庫數據綁定。 SelectedValue財產是給錯誤,如:

DataBinding: 'System.Data.DataRowView' does not contain a property with the name 'PROGRAMME'.

+0

你在哪裏綁定下拉列表? – dansasu11

+0

我已經在Gridview_RowDataBound事件中完成了 –

+0

您必須先綁定dropdownlist數據源,然後才能設置selectedvalue – Sandeep

回答

0

可以在代碼綁定入radgrid控件Itemdatabond事件背後:

private void RadGrid1_ItemDataBound(object sender, Telerik.Web.UI.GridItemEventArgs e) 
{ 
    if ((e.Item is GridDataItem)) { 
     GridDataItem item = e.Item; 
     DropDownList list = (DropDownList)item.FindControl("ddlProgramme"); 
     list.SelectedValue = DataBinder.Eval(item.DataItem, "<Datafield_name>").ToString(); 
    } 
} 

希望這有助於...

0

改變這一行 您的查詢是SELECT 程序LOT_STYLEART FROM FABRICISSUE

你應該用你的查詢像場

DataTextField =「LOT_STYLE 「DataValueField =」 PROGRAM 「的SelectedValue =」 <%#綁定(」 PROGRAM「)%>'

<asp:DropDownList ID="ddlProgramme" DataTextField="PROGRAMME_NAME" DataValueField="PROGRAMME" SelectedValue='<%# Bind("PROGRAMME") %>' AppendDataBoundItems="true" runat="server"></asp:DropDownList> 
+0

您的解決方案看起來很完美。但是執行''AppendDataBoundItems =「true」runat =「服務器「>',因爲如果他更改數據值字段,他必須更改數據層或Sp。如果PROGRAMME_ID是值字段,那麼讓它是,並且必須在選定的值區域中更改它。 – Sankar

+0

我已經嘗試過那些..但它不工作..謝謝反正 –

相關問題