0

ObjectDataSourceを使用する場合、次の選択があります。

<asp:DropDownList runat="server" SelectedValue='<%# Bind("InceptionCycle.ID") %>' ID="InceptionCycle" 
     DataSourceID="odsAllCycles" DataTextField="CycleName" DataValueField="ID" AppendDataBoundItems="true">
     <asp:ListItem Text="Choose..." Value=""></asp:ListItem>
</asp:DropDownList>

UpdateMethodおよびInsertMethodで構成されたObjectDataSourceただし、挿入/更新メソッドには、 InceptionCycle名を持つパラメーターがあります( InceptionCycle.IDは有効な識別子ではないため)。

ObjectDataSource にInceptionCycle.IDフォーム パラメータを取り、 InceptionCycleメソッド パラメータとして配置するように指示する方法はありますか?

完全な ObjectDataSource コードは次のとおりです。

<asp:ObjectDataSource ID="ods" runat="server" TypeName="Sources.DomainSource"
    SelectMethod="FindById" InsertMethod="Add" UpdateMethod="Update"
    OnInserted="ods_Inserted" OnUpdated="ods_Updated">
    <SelectParameters>
        <asp:QueryStringParameter Name="id" QueryStringField="id" />
    </SelectParameters>
    <InsertParameters>
        <asp:Parameter ConvertEmptyStringToNull="true" Name="ShortTitle" />
        <asp:Parameter ConvertEmptyStringToNull="true" Name="WMRId" />
        <asp:Parameter ConvertEmptyStringToNull="true" Name="MDSId" />
        <asp:Parameter ConvertEmptyStringToNull="true" Name="Status" />
    </InsertParameters>
    <UpdateParameters>
        <asp:QueryStringParameter Name="id" QueryStringField="id" />
        <asp:Parameter ConvertEmptyStringToNull="true" Name="ShortTitle" />
        <asp:Parameter ConvertEmptyStringToNull="true" Name="WMRId" />
        <asp:Parameter ConvertEmptyStringToNull="true" Name="MDSId" />
        <asp:Parameter ConvertEmptyStringToNull="true" Name="Status" />
    </UpdateParameters>
</asp:ObjectDataSource>
4

1 に答える 1

0

Bind 構文は、最上位のプロパティでのみ使用できます。ネストされたプロパティはサポートされていません (ただし、VS 2012 ではサポートされます)。

したがって、以下のようにデータ ソースに新しいプロパティを作成し、代わりに SelectedValue をこの新しいプロパティにバインドする必要があります。

 public string InceptionCycleID
 {
      get
      {
           return InceptionCycle.ID;
      }
      set
      {
           InceptionCycle.ID = value;
      }
 }
于 2012-06-19T12:47:06.113 に答える