ModalPopupExtender和逗号出现在我的TextBox中(ASP.NET)。

12

一些奇怪的事情正在发生,我正在将一个以前使用JavaScript打开另一个网页进行数据输入的应用程序转换为使用ModalPopupExtender。

看起来它工作得很好,但在OK事件中,当我执行txtData.Text (我的模态弹出窗口中的文本框)时,它会在数据前面加上逗号,所以如果你输入"Rabbit",它会返回",Rabbit"。

此外,当我在其他可能会点击显示该模态弹出窗口的地方多次使用它时,当我输入"Fish"时,它开始返回一些像",Rabbit,,Fish"之类的东西。

我不知道为什么或如何停止它做这些事情...有什么想法吗?


1
遇到了完全相同的问题。这似乎是因为我们更新到最新版本的AJAX控件工具包。还会导致随机错误,例如每个页面上的ajax控件/扩展器都会出现消息:Sys.InvalidOperationException: 无法将具有相同id '[ExtenderID]'的两个组件添加到应用程序中。 - user193051
最终我没有找到解决方案,所以最后修改了我的页面,使用 Javascript 来隐藏和显示模态对话框,并且不再使用 UpdatePanel 而是进行整个页面刷新... 真糟糕! - NibblyPig
15个回答

0

我已经尝试解决这个问题一整天了,办公室里有位非常乐于助人的同事给出了一个绝佳的解决方案!

我们将 ModalPopUpExtender 和随后由该扩展控制的弹出面板移到页面上最外层 UpdatePanel 的外部,并创建了一个虚拟按钮,将虚拟按钮的 ID 赋值给 ModalPopUpExtender 的 TargetControlID 属性。

<asp:Button runat="server" ID="dummyButton" CausesValidation="false" Style="display: none" />

<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" TargetControlID="dummyButton" CancelControlID="CancelPopUp" PopupControlID="PanelID" BackgroundCssClass="modalBackground" />

在我的表单/页面中,弹出窗口扩展程序和面板所在的位置,我在我们以前用来触发ModalPopUpExtender的按钮上创建了一个OnClick事件。
<asp:ImageButton ID="ButtonID" runat="server" Text="Add" ImageUrl="~/Images/Add-32-1-small.png" OnClick="LoadPopUp" />

在我的触发ModalPopUpExtender的按钮上,我创建了一个名为“LoadPopUp”的OnClick事件 - 在代码后台的LoadPopUp中,我只需放置ModalPopUpExtender1.Show();
protected void LoadPopUp(object sender, EventArgs e)
{
  ModalPopupExtender1.Show();
}

0
对我来说,解决方案是将模态弹出窗口从主更新面板中取出。一旦我这样做了,逗号就消失了。如果你真的需要在模态弹出窗口内部使用更新面板,请在该面板内创建一个自己的更新面板。
我不需要回滚到工具包的先前版本。

撤销上一条消息,我发得太快了。这对我没有用。看来我还是要回滚。 - Roger H

0
解决方案是将模态弹出窗口移出主更新面板。一旦这样做,逗号就会消失。如果您确实需要在模态弹出窗口内部使用更新面板,请在该面板内创建一个更新面板。

0

0

我遇到了同样的问题,但我没有使用AjaxControlToolkit或更新面板。我的问题是通过将<form>标签从ASP.net主页面移动到文本框所在的页面来解决的。这可能会对某些人有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接