2012-04-02 56 views
2

我知道这已被问到,但没有一个答案符合我的情况。所以我会谦虚地问,是否有人可以轻轻地再次走过我。来自javascript的c#函数后面的调用代码

环境:使用c#,javascript,jquery,sql server和实体框架的.net 4 web应用程序。

问题:我需要能够允许用户将一个值“快速添加”到绑定到下拉框的表中,而不会丢失用户已经输入到当前页面的值。我不在乎是否必须做回发或使用jQuery或使用Ajax等。我需要功能第一 - 以后的漂亮...如果你喜欢继续阅读,下面描述场景。尽管如此,我很乐意为此让用户顺利,而不是“笨拙”。

场景: 我有一个页面,用户可以进入的许多信息到文本框,静态下拉框,下拉绑定到将都得到合并,并插入到一个表中的其他表盒。那么,它永远不会失败,用户可能会填写页面,当他们到达一个表绑定的下拉框 - 一个值丢失或他们还没有添加项目。我想添加一个按钮或链接,或者在该下拉框旁边添加一些内容,以便用户“快速添加”一个项目到填充该下拉框的表格中,然后刷新下拉框,以便他们可以选择从列表中获得新的价值......而不会丢失他们已经输入的屏幕上的其他数据。

我试过的东西: -Try WebMethod选项。目前,这个网页在后面的代码中调用一些自定义的“绑定”方法来填充下拉框,使得它们不是直接从实体框架中的对象填充。因此,这意味着使用静态方法不适用于解决方案,因为静态函数的一部分需要调用bind方法来刷新具有新插入值的下拉框。

-Try PageMethod选项。其他一些示例使用了页面方法设置,但我的网站使用了主页和内容页面,并且帖子似乎声明页面方法路线不起作用。

有意义吗?

回答

0

将一个UpdatePanel添加到页面。更新面板应包装要添加的下拉列表,以及用于向该下拉列表中添加新条目的文本框/按钮。如果适用,您可能希望为每个下拉/按钮对设置不同的UpdatePanel。

当他们单击更新面板内的按钮时,您可以阅读文本框,向下拉列表中添加额外的项目,并向数据库发送更新。 (我会手动将新值添加到下拉列表中,而不是更新数据库并重新绑定,如果可能的话,但可能不会)。

UpdatePanels的魔力将确保这是全部异步的并且所以不会打扰在页面上工作的用户。

+0

我喜欢这一点...更进一步 - 如果我使用某种类型的对话框或弹出式菜单,弹出一个模式对话框,其中包含一个输入名称的文本框(该表格的关键字仅为“名称”)...通常是jQuery或什么的JavaScript ...最好把这个名字放在一个隐藏的领域,并从功能后面的代码引用它?或者只是在“快速添加区域”的窗体上的某个地方放置一个文本框,然后使用asp:button单击事件并处理所有内容......使用updatepanel ...? – 2012-04-02 20:19:38

+0

我可能在隐藏div的文本框/按钮,然后有一个链接,点击时显示div。如果有人有适当的动机,他们可以让这个div浮动模式弹出式的东西。在这一点上,它是客户端的所有花哨的JavaScript,并没有改变这里的底层策略。请记住,这个浮动div在更新面板内部定义非常重要,并且不需要在更新面板“内部”的东西不是它的子项。 – Servy 2012-04-02 20:23:46

+0

好 - 有道理 - 功能优先..以后闪.. 至于添加项目首先下拉首先或数据库..我必须首先将它添加到数据库,所以当它在下拉框中,它有一个数据库键作为其绑定此表与数据库中的其他人的选项值。 – 2012-04-02 20:26:26

相关问题