我正在爲一個問題苦苦掙扎,我只能找到一個解決方案。asp.net 2.0:使用jquery更新formview
首先,我不能使用asp.net AJAX或任何其他標準asp.net 2.0作爲服務器管理員不會安裝任何其他東西。
所以,這就是我所要做的。 (對於好奇,跳到下面的大膽問題)
我的頁面由幾個部分組成,其中的每一個得到由jquery.load(URL)加載。其中一個頁面部分被一個包含表單視圖的aspx填充。由於我不想回發,我只需點擊一個常規html按鈕即可切換到表單視圖的EditTemplate,該按鈕提交一個參數,指示aspx頁面切換到編輯模式,例如,
Page_Load(...)
{
if(Request.Params["SwitchEditMode"]) SwitchEditMode();
}
這完美的作品!現在,這裏是我卡住的部分。 EditTemplate中的元素基於從數據庫視圖中選擇的元素,並綁定到<%# Bind("xx")
的字段。然後我有一個html按鈕(沒有asp控件),它提交一個參數給aspx頁面,告訴它調用DataSource更新方法。在dataSource_updating方法中,我查找包含要保存的值的控件。但是,當我切換到編輯視圖時,這些值始終是相同的。我保留的文本框或下拉列表中沒有任何更改。
長話短說,如何將EditTemplate中的值保存回jquery的數據庫?
到目前爲止,我嘗試了幾個方案,但沒有成功。
在更新()方法中,查找FindControl的控件並設置
e.Command.Parameter["xyz"] = foundcontrol.SelectedValue;
。值始終與開始時相同。設置
<asp:parameter name="SampleValue" />
並在EditTemplate中<asp:TextBox Value='<%# Bind("SampleValue")#>
這些值始終爲空。通過javascript設置一個帶有選定值的隱藏輸入字段。這不起作用作爲內EditTemplate控制是開關進入編輯模式
所以也許我完全錯了我的想法,標題變成一個完全錯誤的方向,這可以實現更容易後纔可見,但到現在爲止我不知道如何實現這一點。我可以做到沒有Ajax,但爲了用戶體驗,我更喜歡jQuery版本。
對於所有已經閱讀了這一點,並沒有感到困惑:-),感謝您的努力!
最好的問候,
安德烈亞斯
我忘了。某些編輯項目由另一個DataSource中的DropDowns填充,並且值應該寫入另一個數據庫表中,而不是數據源自的視圖。 –