我正在为一个问题苦苦挣扎,我只能找到一个解决方案。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填充,并且值应该写入另一个数据库表中,而不是数据源自的视图。 –