【问题标题】:Passing data into a ModalPopupExtender that was opened by Javascript将数据传递到由 Javascript 打开的 ModalPopupExtender
【发布时间】:2012-07-11 12:58:28
【问题描述】:

在我的代码隐藏中,我使用 javascript 打开一个 ModalPopup

javascript: $find('BehaviorID').show()

效果很好。但我还需要从选定的 gridview 行中传递一个用户名,以便我可以从数据库中获取一些数据并显示它们。

概览:

  • 我有一个显示数据行的网格视图。
  • 我可以单击一行以打开有关用户(数据)的详细信息。
  • 我需要将所选行的用户名传递给 ModalPopupExtender

我怎样才能做到这一点?

顺便说一句,我对 javascript 一点也不熟悉,但是当我看到代码时我就明白了,所以如果你有 javascript 解决方案,请不要犹豫分享。

谢谢

这里是调用javascript方法的代码

e.Row.Attributes.Add("ondblclick", "javascript: $find('BehaviorID').show()");

它在 GridView 的每个 DataRow 的 for 循环中。

【问题讨论】:

  • 我通过不使用 Session 变量解决了这个问题。谢谢

标签: c# javascript asp.net ajaxcontroltoolkit modalpopupextender


【解决方案1】:

添加一个 Html 隐藏字段来保存选定的用户名:

<input type="hidden" name="selectedUserName" id="selectedUserName" />

在每一行中,将用户名保存在控件中。在行单击事件中,您需要找到此控件并将上述隐藏输入分配给行用户名。

function showModalPopup(usernameInputID) {
   document.getElementById('selectedUserName').value = document.getElementById(usernameInputID).value;
   $find('BehaviorID').show();
}
e.Row.Attributes.Add("ondblclick", "javascript: showModalPopup('" + e.Row.FindControl("inpUserName").ClientID + "')");

【讨论】:

  • e.Row 中的“e”到底是什么?
  • GridViewRowEventArgs 稍后用于检查该行是否为 DataRow
  • 它现在甚至没有弹出。我不太明白你所说的 usernameInputID 是什么意思
  • inpUserName 是每行保存用户名的控件
猜你喜欢
  • 2010-11-19
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-03-10
  • 2016-02-08
  • 1970-01-01
  • 2023-03-25
相关资源
最近更新 更多