0

基本上,我有一个从父窗口在新窗口中打开的 gridview。它有一堆带有查看按钮的记录,用于查看每条记录的详细信息(保留在同一个新打开的窗口中)。我在父窗口中有一个日历,它接受一个日期查询字符串参数来在页面加载时设置日历上的当前日期。我只是想刷新父窗口中的日历以匹配新打开的窗口中标签的日期。

下面的所有代码都在新打开的窗口中。下面的 .Net 代码隐藏是指单击该视图按钮并填充所有内容的时间。最后我调用js刷新父窗口,将LabelScheduleDate的值作为querystring参数传入。现在标签在代码隐藏中以'03/25/2010'的形式出现,但是当我将它传递给js时,它在最后的查询字符串中以'0.00005970149253731343'的形式出现。我不确定是什么使值发生了变化,我想将它作为text传递。我需要将它作为字符串对象传递吗?我试过了,但我不认为我做得对。

谢谢。

JavaScript 函数

function RefreshParent(inputDate) {
   window.opener.location = window.opener.location + "?Date=" + inputDate;
}

.NET 代码隐藏

Protected Sub RadGridOnlineRequests_ItemCommand(ByVal source As Object, ByVal e As Telerik.Web.UI.GridCommandEventArgs) Handles RadGridOnlineRequests.ItemCommand

   If e.CommandName = "ViewOnlineRequest" Then

      ' populates LabelScheduleDate among other controls values
      ScriptManager.RegisterStartupScript( _
         Me, Me.GetType(), "clientScript", "RefreshParent(" & LabelScheduleDate.Text &  ");", True)

   End If

End Sub
4

1 回答 1

1

您所要做的只是确保您的渲染脚本最终会在文本周围加上引号:

RefreshParent('" & LabelScheduleDate.Text &  "');

如果LabelScheduleDate.Text值为“03/25/2010”,这将解析为

RefreshParent('03/25/2010');

...而您的代码将解决

RefreshParent(03/25/2010);

...这意味着RefreshParent收到 3 除以 25 除以 2010。

于 2010-03-23T14:36:18.110 回答