2011-11-10 11 views
0

私はテーブルを表示するオブジェクトのデータソース(Webサービス)を使用して設定されているgridviewがあります。テーブルは現在現れており、テーブルの最後には編集オプションがあります。私がしたいのは、ユーザーが編集オプションをクリックしたときです。行には、Webサービスから入手可能なオプションがあるドロップダウンボックスが表示されます。現時点では、テーブルは正しくロードされ、オブジェクトデータソースからのデータが出力されます。ただし、編集ボタンをクリックすると、ドロップボックスを含む列には何が表示され、ドロップボックスの内側にあるのは、データソースがコンボボックスにリンクされている経路です。そのソースのオブジェクトのTextvalueが存在し、選択されたときには、データソースから取得された項目の一意のIDをすべて選択したアイテムの使用が選択されたとします。あなたがこれまでに試したことを以下に見つけるでしょう:どのようにして、グリッドビューの編集テンプレートにコンボボックスを正常に埋め込むのですか? asp.net

<asp:GridView ID="GridViewHolder" 
         runat="server" 
         AutoGenerateColumns="False" 
         BorderColor="Black" 
         BorderStyle="Ridge" 
         BorderWidth="2px" 
         DataSourceID="MachineDataSet" 
         ForeColor="DarkBlue" 
         HeaderStyle-HorizontalAlign="Center" 
         HorizontalAlign="Center"        
         RowStyle-HorizontalAlign="Center" > 
      <RowStyle HorizontalAlign="Center" /> 
      <Columns> 
       <asp:BoundField DataField="SiteName" 
           HeaderText="Site Name" 
           SortExpression="SiteName" /> 
       <asp:BoundField DataField="Name" 
           HeaderText="Machine Name" 
           SortExpression="Name" /> 
       <asp:TemplateField HeaderText="Machine Type" 
            SortExpression="MachineType"> 
        <EditItemTemplate> 
         <telerik:RadComboBox ID="Machine_Type" 
               runat="server" 
               EmptyMessage="Select a Machine Type." 
               EnableLoadOnDemand="true" 
               DataSourceID="GetMachineType" 
               EnableVirtualScrolling="true"> 
         </telerik:RadComboBox>        
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("MachineType") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Machine Model" SortExpression="MachineModel"> 
        <EditItemTemplate> 
         <telerik:RadComboBox ID="Machine_Model" 
               runat="server" 
               EmptyMessage="Select a Machine Model." 
               EnableLoadOnDemand="true" 
               DataSourceID="GetMachineModel" 
               EnableVirtualScrolling="true"> 
         </telerik:RadComboBox> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label2" runat="server" Text='<%# Bind("MachineModel") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:CommandField ButtonType="Button" ShowEditButton="True" /> 
      </Columns> 
      <HeaderStyle HorizontalAlign="Center" /> 
     </asp:GridView> 

これは私が現在使っているグリッドです。

<asp:ObjectDataSource ID="MachineDataSet" 
           runat="server" 
           SelectMethod="GetMachineSiteDetails"         
           TypeName="Datamart.UI.Reporting.Web.FilteredReportInputsSvc.FilteredReportInputsService"> 
      <SelectParameters> 
       <asp:Parameter DefaultValue="" 
           Name="siteid" 
           Type="String" /> 
      </SelectParameters> 
     </asp:ObjectDataSource>    
     <asp:ObjectDataSource ID="GetMachineType" 
           runat="server" 
           SelectMethod="GetMachineTypeList" 
           TypeName="Datamart.UI.Reporting.Web.FilteredReportInputsSvc.FilteredReportInputsService"> 
      <SelectParameters> 
       <asp:Parameter Name="siteid" Type="String" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 
     <asp:ObjectDataSource ID="GetMachineModel" 
           runat="server" 
           SelectMethod="GetMachineModelList" 
           TypeName="Datamart.UI.Reporting.Web.FilteredReportInputsSvc.FilteredReportInputsService"> 
      <SelectParameters> 
       <asp:Parameter Name="siteid" Type="String" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 

これは現在使用しているオブジェクトデータソースです。

私の問題はedittemplatesにあります。そして、私が問題と考えるのは、Dropboxが実際に正しいデータを取得していることですが、正しく表示する方法はありません。 私が知りたいのは、編集をクリックすると、ドロップボックスがグリッドの編集可能な列に表示され、クリックすると利用可能なオプションが表示され、選択可能な項目が表示されますないこのデータソースの各オプションについて:

Datamart.UI.Reporting.Web.FilteredReportInputsSvc.FilteredReportInputsService

すべてのヘルプや提案は大歓迎です。

ありがとうございます。

答えて

0

これでちょっとびっくりした後、私はちょうど普通のasp:dropdownlistを使ってこれを正しく設定したと思っています。

これは今私が私た.ascxページで使用されるコードです:

   <asp:GridView ID="GridViewHolder" 
         runat="server" 
         AutoGenerateColumns="False" 
         BorderColor="Black" 
         BorderStyle="Ridge" 
         BorderWidth="2px" 
         DataSourceID="MachineDataSet" 
         ForeColor="DarkBlue" 
         HeaderStyle-HorizontalAlign="Center" 
         HorizontalAlign="Center"        
         RowStyle-HorizontalAlign="Center" 
         AllowPaging="True">       
      <RowStyle HorizontalAlign="Center" /> 
      <Columns> 
       <asp:BoundField DataField="SiteName" 
           HeaderText="SiteName" 
           SortExpression="SiteName" 
           ReadOnly="True" /> 
       <asp:BoundField DataField="Name" 
           HeaderText="Machine Name" 
           SortExpression="Name" 
           ReadOnly="True" /> 
       <asp:TemplateField HeaderText="Machine Type" 
            SortExpression="MachineType"> 
        <EditItemTemplate> 
         <asp:ObjectDataSource ID="GetMachineType" 
               runat="server" 
               SelectMethod="GetMachineTypeList" 
               TypeName="Datamart.UI.Reporting.Web.FilteredReportInputsSvc.FilteredReportInputsService" 
               UpdateMethod="UpdateMachineTypes"> 
          <UpdateParameters> 
           <asp:Parameter Name="machineId" Type="Int32" /> 
           <asp:Parameter Name="machineType" Type="String" /> 
          </UpdateParameters> 
          <SelectParameters> 
           <asp:Parameter Name="siteid" Type="String" /> 
          </SelectParameters> 
         </asp:ObjectDataSource> 
         <asp:DropDownList ID="Machine_Type" 
              runat="server" 
              DataSourceID="GetMachineType" 
              DataTextField="Name" 
              DataValueField="ID" 
              Height="17px" 
              Width="181px"> 
           <asp:ListItem Selected="True" 
              Text="Select a Machine Type."> 
           </asp:ListItem> 
         </asp:DropDownList> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text='<%# Bind("MachineType") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:TemplateField HeaderText="Machine Model" SortExpression="MachineModel"> 
        <EditItemTemplate> 
         <asp:ObjectDataSource ID="GetMachineModel" 
               runat="server" 
               SelectMethod="GetMachineModelList" 
               TypeName="Datamart.UI.Reporting.Web.FilteredReportInputsSvc.FilteredReportInputsService" 
               UpdateMethod="UpdateMachineModels"> 
          <UpdateParameters> 
           <asp:Parameter Name="machineId" Type="Int32" /> 
           <asp:Parameter Name="machineModel" Type="String" /> 
          </UpdateParameters> 
          <SelectParameters> 
           <asp:Parameter Name="siteid" Type="String" /> 
          </SelectParameters> 
         </asp:ObjectDataSource> 
         <asp:DropDownList ID="Machine_Model" 
              runat="server" 
              DataSourceID="GetMachineModel" 
              DataTextField="Name" 
              DataValueField="ID" 
              Width="181px" 
              Height="17px"> 
           <asp:ListItem Selected="True" 
              Text="Select a Machine Model."> 
           </asp:ListItem> 
         </asp:DropDownList> 
        </EditItemTemplate> 
        <ItemTemplate> 
         <asp:Label ID="Label2" runat="server" Text='<%# Bind("MachineModel") %>'></asp:Label> 
        </ItemTemplate> 
       </asp:TemplateField> 
       <asp:CommandField ButtonType="Button" ShowEditButton="True" ShowHeader="True" /> 
      </Columns> 
      <HeaderStyle HorizontalAlign="Center" /> 
     </asp:GridView> 
     <asp:ObjectDataSource ID="MachineDataSet" 
           runat="server" 
           SelectMethod="GetMachineSiteDetails"         
           TypeName="Datamart.UI.Reporting.Web.FilteredReportInputsSvc.FilteredReportInputsService"> 
      <SelectParameters> 
       <asp:Parameter DefaultValue="" 
           Name="siteid" 
           Type="String" /> 
      </SelectParameters> 
     </asp:ObjectDataSource> 

あなたは間違って何かを見つけるか、この設計についてのコメントを持っている場合は、私はまだでの作業にはかなり新しいですのためにコメントして自由に感じますasp.netと任意の提案は大きな助けです!

関連する問題