2015-10-13 44 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

我已经尝试过那些..但它不工作..谢谢反正 –

相关问题