2014-07-20 22 views
0

我不知道該綁定網格視圖的編輯模板中使用的下拉列表。我得到的錯誤是「附加信息:DataBinding:'System.Data.DataRowView'不包含名稱爲'Type'的屬性。」下面是來自網格視圖的摘錄...下拉列表框作爲DataGrid中的EditTemplate - 不綁定

 <asp:TemplateField HeaderText="Type *" SortExpression="Type"> 
      <EditItemTemplate> 
       <asp:DropDownList ID="ddlTypeEdit" runat="server" DataSourceID="SqlDataSourceType" DataTextField="Code" DataValueField="LookupValuesID" SelectedValue='<%# Bind("Code") %>'> 
       </asp:DropDownList> 
       <asp:RequiredFieldValidator ID="RequiredFieldValidatorddlTypeEdit" runat="server" ErrorMessage="Type is required" ControlToValidate="ddlTypeEdit"></asp:RequiredFieldValidator> 
      </EditItemTemplate> 
      <ItemTemplate> 
       <asp:Label ID="Label3" runat="server" Text='<%# Bind("Code") %>'></asp:Label> 
      </ItemTemplate> 
     </asp:TemplateField> 

<asp:SqlDataSource ID="SqlDataSourcegrvLeases" runat="server" ConnectionString="<%$ ConnectionStrings:MFPConnectionString1 %>" 
SelectCommand="SELECT [tbl_Lease_Agrmnt].[LeaseAgrmntID], [tbl_Lease_Agrmnt].[SalesOrderID], [tbl_Lease_Agrmnt].[SerialNo], [tlkp_Lookup_Values].[Code], [tbl_Lease_Agrmnt].[ContractNo], [tbl_Lease_Agrmnt].[ScheduleNo], [tbl_Lease_Agrmnt].[StartDate], [tbl_Lease_Agrmnt].[Term], [tbl_Lease_Agrmnt].[Hours], [tbl_Lease_Agrmnt].[Rate], [tbl_Lease_Agrmnt].[ReturnDate], [tbl_Lease_Agrmnt].[CloseDate], [tbl_Lease_Agrmnt].[ExtensionStartDate], [tbl_Lease_Agrmnt].[ExtensionTerm] FROM [tbl_Lease_Agrmnt] LEFT JOIN [tlkp_Lookup_Values] ON [tbl_Lease_Agrmnt].[Type] = [tlkp_Lookup_Values].[LookupValuesID] WHERE ([SalesOrderID] = @SalesOrderID) ORDER BY [LeaseAgrmntID]" 
UpdateCommand="UPDATE [tbl_Lease_Agrmnt] SET [SalesOrderID] = @SalesOrderID, [SerialNo] = @SerialNo, [Type] = @Type, [ContractNo] = @ContractNo, [ScheduleNo] = @ScheduleNo, [StartDate] = @StartDate, [Term] = @Term, [Hours] = @Hours, [Rate] = @Rate, [ReturnDate] = @ReturnDate, [CloseDate] = @CloseDate, [ExtensionStartDate] = @ExtensionStartDate, [ExtensionTerm] = @ExtensionTerm WHERE [LeaseAgrmntID] = @LeaseAgrmntID"> 
    <SelectParameters> 
     <asp:ControlParameter ControlID="ddlLeaseSalesOrder" Name="SalesOrderID" PropertyName="SelectedValue" Type="Int32" /> 
    </SelectParameters> 
    <UpdateParameters> 
     <asp:Parameter Name="SalesOrderID" Type="Int32" /> 
     <asp:Parameter Name="SerialNo" Type="String" /> 
     <asp:Parameter Name="Type" Type="Int32" /> 
     <asp:Parameter Name="ContractNo" Type="String" /> 
     <asp:Parameter Name="ScheduleNo" Type="String" /> 
     <asp:Parameter Name="StartDate" Type="String" /> 
     <asp:Parameter Name="Term" Type="Int32" /> 
     <asp:Parameter Name="Hours" Type="Int32" /> 
     <asp:Parameter Name="Rate" Type="Decimal" /> 
     <asp:Parameter DbType="Date" Name="ReturnDate" /> 
     <asp:Parameter DbType="Date" Name="CloseDate" /> 
     <asp:Parameter DbType="Date" Name="ExtensionStartDate" /> 
     <asp:Parameter Name="ExtensionTerm" Type="Int32" /> 
     <asp:Parameter Name="LeaseAgrmntID" Type="Int32" /> 
    </UpdateParameters> 
</asp:SqlDataSource> 

回答

0

看起來你收到此錯誤,因爲你的選擇查詢不包括類型字段。如果你修改你的查詢,我認爲它會工作得很好。請注意,在FROM關鍵字前添加了[tbl_Lease_Agrmnt]。[Type]

SELECT [tbl_Lease_Agrmnt].[LeaseAgrmntID], [tbl_Lease_Agrmnt].[SalesOrderID], [tbl_Lease_Agrmnt].[SerialNo], [tlkp_Lookup_Values].[Code], [tbl_Lease_Agrmnt].[ContractNo], [tbl_Lease_Agrmnt].[ScheduleNo], [tbl_Lease_Agrmnt].[StartDate], [tbl_Lease_Agrmnt].[Term], [tbl_Lease_Agrmnt].[Hours], [tbl_Lease_Agrmnt].[Rate], [tbl_Lease_Agrmnt].[ReturnDate], [tbl_Lease_Agrmnt].[CloseDate], [tbl_Lease_Agrmnt].[ExtensionStartDate], [tbl_Lease_Agrmnt].[ExtensionTerm], [tbl_Lease_Agrmnt].[Type] FROM [tbl_Lease_Agrmnt] LEFT JOIN [tlkp_Lookup_Values] ON [tbl_Lease_Agrmnt].[Type] = [tlkp_Lookup_Values].[LookupValuesID] WHERE ([SalesOrderID] = @SalesOrderID) ORDER BY [LeaseAgrmntID] 
+0

當我添加字段時出現以下錯誤...'ddlTypeEdit'具有無效的SelectedValue,因爲它不存在於項目列表中。 參數名稱:值 – Rodd

+0

如果將SelectedValue ='<%#綁定(「代碼」)%>'更改爲SelectedValue =「Code」,會怎麼樣? –