-1

グリッド ビュー内にドロップダウン リストがあります。ここにグリッドビューがあります

<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>

そして、これがデータをバインドするためのコードビハインドです

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'.

4

2 に答える 2

1

この行を変更してくださいクエリは SELECT PROGRAMLOT_STYLEART FROM FABRICISSUE です

クエリのフィールドを使用する必要があります

DataTextField=" LOT_STYLE " DataValueField =" PROGRAM " SelectedValue='<%# Bind(" PROGRAM ") %>'

<asp:DropDownList ID="ddlProgramme" DataTextField="PROGRAMME_NAME" DataValueField="PROGRAMME" SelectedValue='<%# Bind("PROGRAMME") %>' AppendDataBoundItems="true"  runat="server"></asp:DropDownList>
于 2015-10-13T11:55:21.487 に答える
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();
    }
}

お役に立てれば...

于 2015-10-14T05:50:33.850 に答える