2013-10-04 18 views
2

我嘗試添加在下拉列表批准類型值grdiview與名稱的字段或屬性「ApproveID」未選擇的數據源

的GridView

<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(); 

地方,因爲在文件表中沒有approveid列,這是隻有在審批表中添加該代碼。 我試圖說明approve.reject和GridView控件在下拉列表未決

當我調試代碼它告訴我在頁面加載代碼錯誤..

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

回答

3

您綁定到網格視圖不包含列Arrpove類型。所以很明顯,你會得到錯誤的數據源。

您需要通過使用表之間的連接來獲取Approve id

網格視圖只能容納一個結果在時間

ALTER procedure [dbo].[viewdocid] 
as 
select A.ApproveID,A.ApproveType 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 
left join dbo.ApproveType A on dbo.DocumentInfo.DocID=A.Approvetype 

希望這有助於設定..

+0

我嘗試烏爾查詢它讓我錯誤 –

+0

不正確synatx錯誤附近「ApproveType」 –

+0

見我的答案更新.. –

1

你需要有ApproveID列存在在結果集中。也就是說,包括SELECT中的列。如果是在接合表,你需要做的是這樣的:

select [JoinedTable].[Column] AS ApproveID ... 
+0

我屬我mentioed abovee r添加這個我創造新的? –

+0

你可以將它添加到現有的 – Robert

+0

你能告訴兩個表的共同列嗎? –

相關問題