まず第一に、私はまだ私のWeb開発者の足を私の下に置いています。SOの投稿、ブログ、ニュースグループ、記事の山をくまなく調べましたが、問題を解決できないようです。これは、私が見た少なくとも10の異なる投稿と非常によく似ています。
表示および選択列として機能するASPグリッドビューがあります。[選択]をクリックすると、データが詳細ビューに表示されます。ドロップダウンボックスにする必要のあるフィールドが1つありますが、値を変更して[更新]をクリックすると、コマンドに送信される値が元の値になります。
ページマークアップ:
<asp:TemplateField HeaderText="Planner Name">
<ItemTemplate>
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="cboCurrentPlanner" runat="server" DataSourceID="plannerDataSource"
DataTextField="planner_name" DataValueField="planner_id" SelectedValue='<%# Eval("planner_id") %>' AutoPostBack="true" ></asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
<asp:CommandField ShowEditButton="True" />
</Fields>
<FooterStyle BackColor="#CCCC99" ForeColor="Black" />
<HeaderStyle BackColor="#333333" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="White" ForeColor="Black" HorizontalAlign="Right" />
</asp:DetailsView>
sqlDataSource:
SelectCommand="SELECT vendor_key, vendor, planner_name, street, city, state_country, planner_id, country FROM V_MAP_MarkerInfo WHERE (vendor_key = @vendor_key)"
UpdateCommand="MAP_usp_webUpdatePlanToVendor"
UpdateCommandType="StoredProcedure" onupdating="mapDetailSource_Updating" >
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="vendor_key"
PropertyName="SelectedValue" Type="Int32" />
</SelectParameters>
<UpdateParameters>
<asp:Parameter Name="vendor_key" Type="String" />
<asp:Parameter Name="planner_id" Type="Int32" />
<asp:Parameter Name = "vendor" Type="String" />
</UpdateParameters>
</asp:SqlDataSource>
<asp:SqlDataSource ID="plannerDataSource" runat="server"
ConnectionString="<%$ ConnectionStrings:vendor_mapConnectionString %>"
SelectCommand="SELECT [planner_id], [planner_name] FROM [MAP_planners]"
OldValuesParameterFormatString="original_{0}">
</asp:SqlDataSource>
ストアドプロシージャコードは投稿しません。機能していることはわかっています。元の値は、パラメータに到達する唯一の値です。
ポストバックのさまざまな組み合わせを試しまし<%# Bind/Eval() %>
たが、適切な組み合わせが見つかりません。
[選択]をクリックすると、ドロップダウンリストで現在のプランナーが選択されます。新しいプランナーを選択して[更新]をクリックすると、プランナーが更新されます。なぜこれがそんなに難しいのか、それを難しくするために私が何を台無しにしたのかはわかりませんが、私は終わりに近づいています。可能であれば、それを機能させる魔法のコード行だけでなく、何が起こっているのかについて説明したいと思います。
Flabbergastedは控えめな表現です。
編集:ViewStateEnbabled="true"
ドロップダウンリストに追加され、selectedIndexChanged
イベントが発生しています。
もう一度編集:planner_idを変更してモニターを<asp:ControlParameter>
追加しました。値はいたるところにあります。しかし、どこでリセットされているのかわかりません。DetailsView1_OnDataBind
MapDataSource1_updating