0

基本的に、親ウィンドウから新しいウィンドウで開かれるグリッドビューがあります。各レコードの詳細を表示するためのビュー ボタンを備えた一連のレコードがあります (新しく開いた同じウィンドウに表示されます)。ページの読み込み時にカレンダーの現在の日付を設定する Date クエリ文字列パラメーターを受け入れる親ウィンドウにカレンダーがあります。新しく開いたウィンドウのラベルの日付と一致するように、親ウィンドウのカレンダーを更新しようとしています。

以下のすべてのコードは、新しく開いたウィンドウにあります。以下の .Net コード ビハインドは、そのビュー ボタンがクリックされ、すべてが読み込まれたときを示しています。最後に、js を呼び出して親ウィンドウを更新し、LabelScheduleDate の値をクエリ文字列パラメーターとして渡します。ラベルはコード ビハインドで「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、2010 で割った 25 で割った 3 を受け取ることを意味します。

于 2010-03-23T14:36:18.110 に答える