私は解決策を見つけることができる問題に苦しんでいます。
まず第一に、サーバー管理者は他に何もインストールしないため、asp.net AJAXまたは標準のasp.net 2.0以外のものを使用できません。
これが私がやろうとしていることです。(好奇心旺盛な方は、以下の太字の質問に進んでください)
私のページはいくつかの部分で構成されており、それぞれが jquery.load(url) によってロードされます。これらのページ パーツの 1 つは、フォーム ビューを含む aspx で埋められます。ポストバックをしたくないので、編集モードに切り替える aspx ページを示すパラメーターを送信する通常の html ボタンをクリックするだけで、フォーム ビューの EditTemplate に切り替えます。
Page_Load(...)
{
if(Request.Params["SwitchEditMode"]) SwitchEditMode();
}
これは完璧に機能します!ここで私が立ち往生している部分です。EditTemplate の要素は、データベース ビューからの選択に基づいており、によってフィールドにバインドされています<%# Bind("xx")
。次に、DataSource 更新メソッドを呼び出すように指示する aspx ページにパラメーターを送信する html ボタン (asp コントロールなし) があります。dataSource_updating メソッドで、保存したい値を含むコントロールを探します。しかし、これらの値は、編集ビューに切り替えたときと同じです。テキストボックスまたはドロップダウンで行った変更は保持されません。
簡単に言うと、jquery を使用して EditTemplate からデータベースに値を保存する方法について質問です。
これまで、いくつかのアプローチを試みましたが、うまくいきませんでした。
updates() メソッドで、FindControl と set によってコントロールを探します
e.Command.Parameter["xyz"] = foundcontrol.SelectedValue;
。値は常に最初と同じです。<asp:parameter name="SampleValue" />
EditTemplate で設定し、<asp:TextBox Value='<%# Bind("SampleValue")#>
値は常に null です。javascript を使用して、選択した値で非表示の入力フィールドを設定します。EditTemplate 内のコントロールは編集モードに切り替えた後にのみ表示されるため、これは機能しません。
ですから、私の考えが完全に間違っていて、完全に間違った方向に進んでいる可能性があります。これははるかに簡単に達成できますが、今のところ、これを達成する方法がわかりません。私は ajax なしでそれを行うことができましたが、ユーザー エクスペリエンスのために、jquery を使用したバージョンを好みます。
ここまで読んで混乱していないすべての皆さん:-)、ご尽力いただきありがとうございます!
よろしくお願いします、
アンドレアス