基本上,我有一个从父窗口在新窗口中打开的gridview。它有一堆带有视图按钮的记录,用于查看每条记录的详细信息(保留在同一个新打开的窗口中)。我在父窗口中有一个日历,它接受一个Date查询字符串参数来设置页面加载时日历上的当前日期。我只是想在父窗口中刷新日历以匹配新打开的窗口中的标签日期。
以下所有代码都在新打开的窗口中。下面的.Net代码隐藏指的是单击该视图按钮并填充所有内容的时间。最后,我调用js刷新父窗口并将LabelScheduleDate的值作为querystring参数传递。现在标签在代码隐藏中以'03 / 25/2010'形式出现,但是当我将它传递给js时,它在最后的查询字符串中以'0.00005970149253731343'形式出现。我不确定是什么让价值发生变化,我想把它作为只是文字传递给我。我是否需要将其作为字符串对象传递?我试过,但我不认为我做得对。
感谢。
JavaScript函数
function RefreshParent(inputDate) {
window.opener.location = window.opener.location + "?Date=" + inputDate;
}
.NET Code-Behind
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
答案 0 :(得分:1)
您只需要确保渲染的脚本最终会在文本周围加上引号:
RefreshParent('" & LabelScheduleDate.Text & "');
如果LabelScheduleDate.Text
的值为“03/25/2010”,则会解析为
RefreshParent('03/25/2010');
...而你的代码已经解决了
RefreshParent(03/25/2010);
...这意味着RefreshParent
获得3除以25除以2010.