2

grdiviewのドロップダウンリストに承認タイプの値を追加しようとしています

グリッドビュー

<asp:BoundField HeaderText="ApproveID" DataField="ApproveID"></asp:BoundField>
            <asp:TemplateField>
                <ItemTemplate>


                    <asp:DropDownList ID="DropDownList4" runat="server" 
                  class="vpb_dropdown">
                    </asp:DropDownList>
                </ItemTemplate>
            </asp:TemplateField>

SQL

ALTER procedure [dbo].[viewdocid]
as
select dbo.DocumentInfo.DocID,dbo.DocumentInfo.DocName,dbo.DocumentInfo.Uploadfile,dbo.DocType.DocType,dbo.Department.DepType
from dbo.DocumentInfo left join dbo.DocType on dbo.DocumentInfo.DocTypeID=dbo.DocType.DocTypeID left join  
dbo.Department on dbo.DocumentInfo.DepID=dbo.Department.DepID

C#

 protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //Find the DropDownList in the Row
            DropDownList ddlvalue = (e.Row.FindControl("DropDownList4") as 
             DropDownList);
           ddlvalue .DataSource = GetData("SELECT ApproveID,ApproveType FROM 
            ApproveType");
            ddlvalue .DataTextField = "ApproveType";
           ddlvalue .DataValueField = "ApproveID";
           ddlvalue .DataBind();

            //Add Default Item in the DropDownList
            ddlvalue.Items.Insert(0, new ListItem("Please select"));

            //Select the Country of Customer in DropDownList
            //string country = (e.Row.FindControl("lblCountry") as Label).Text;
            //ddlvalue.Items.FindByValue(country).Selected = true;
        }
    }

このコードをページの読み込みに追加します

            GrdFileApprove.DataSource = dd.gdocid();
            GrdFileApprove.DataBind();

ドキュメントテーブルに承認された列がないため、これは承認テーブルのみにあります。そして、グリッドビューのドロップダウンリストにapprove.rejectとpendingを表示しようとしました

コードをデバッグすると、ページ読み込みコードにエラーが表示されます..

A field or property with the name 'ApproveID' was not found on the selected data source.
4

2 に答える 2

1

ApproveID結果セットに列が存在する必要があります。つまり、列を に含めますSELECT。結合されているテーブルにある場合は、次のようにする必要があります。

select [JoinedTable].[Column] AS ApproveID ...
于 2013-10-04T06:55:12.257 に答える