繁体   English   中英

asp.net 2.0:用jquery更新formview

[英]asp.net 2.0: update formview with jquery

我正在努力寻找可以解决的问题。

首先,我不能使用asp.net AJAX或除标准asp.net 2.0以外的任何东西,因为服务器管理员不会安装其他任何东西。

因此,这就是我要尝试做的。 (出于好奇 ,请跳到下面大胆问题

我的页面包括几个部分,每个部分都由jquery.load(url)加载。 这些页面部件之一被包含表单视图的aspx填充。 因为我不希望有回发,所以我只需单击常规html按钮,即可提交表单视图的EditTemplate,只需单击一个html按钮即可,该按钮提交了一个指示aspx页面的参数以切换到编辑模式,例如

Page_Load(...)
{
   if(Request.Params["SwitchEditMode"]) SwitchEditMode();
}

这样完美! 现在在这里我卡住的部分。 EditTemplate中的元素基于数据库视图中的选择,并通过<%# Bind("xx")绑定到字段。 然后,我有一个html按钮(没有asp控件),该按钮将参数提交给aspx页面,告诉它调用DataSource更新方法。 在dataSource_updating方法中,我查找包含要保存的值的控件。 但是,这些值始终与切换到编辑视图时相同。 我在文本框或下拉菜单中所做的任何更改都不会保留。

长话短说,问题是如何使用jquery将EditTemplate中的值保存回数据库?

到目前为止,我尝试了几种方法,但都没有解决。

  1. e.Command.Parameter["xyz"] = foundcontrol.SelectedValue; ()方法中,通过FindControl查找控件,并设置e.Command.Parameter["xyz"] = foundcontrol.SelectedValue; 这些值始终与开头相同。

  2. 设置<asp:parameter name="SampleValue" />并在EditTemplate中设置<asp:TextBox Value='<%# Bind("SampleValue")#>值始终为null。

  3. 通过javascript使用所选值设置隐藏的输入字段。 这是行不通的,因为只有在切换到编辑模式后,EditTemplate中的控件才可见

所以也许我的想法完全错了,朝着完全错误的方向前进,这可以容易得多,但是到目前为止,我还不知道如何实现这一目标。 我可以不用ajax来做,但是为了用户体验,我更喜欢使用jquery的版本。

对于到目前为止已经读过并且不感到困惑的所有内容:-),谢谢您的努力!

最好的祝福,

安德烈亚斯

我会忘记使用表单视图,而只使用带有常规输入控件的常规html表单。 从Web服务中返回一个具有所有值的对象,并用ajax填充控件,然后用ajax进行subjmit。 用asmx后端完全执行asp.net或完全html / jquery。 否则,太混乱了。

如果使用AJAX将FormView的两个“模式”加载到同一页面中,则可能会得到重复的字段名称。 其中之一包含要保存的未更改值。 ASP.NET如何知道区别? 您只想从EditTemplate提交那些,这将需要单独的表单(或其他一些技巧)。

也许您的HTML提交按钮没有为ASP.NET提供重新填充控件所需的内容。 您是否在FormView页面中使用ViewState?

总而言之,这听起来像是技术的多毛组合……众所周知。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM