簡體   English   中英

從.NET代碼隱藏將參數作為文本傳遞給JavaScript函數

[英]Pass parameter as text to JavaScript function from .NET code-behind

基本上,我有一個從父窗口在新窗口中打開的gridview。 它有一堆記錄,帶有一個查看按鈕,用於查看每個記錄的詳細信息(保留在同一新打開的窗口中)。 我在父窗口中有一個日歷,該日歷接受Date查詢字符串參數以在頁面加載時設置日歷上的當前日期。 我只是想刷新父窗口中的日歷,以匹配新打開的窗口中標簽的日期。

下面的所有代碼在新打開的窗口中。 下面的.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

您所要做的只是確保已渲染的腳本以文本兩端的引號結尾:

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

如果LabelScheduleDate.Text的值為“ LabelScheduleDate.Text ”,則它將解析為

RefreshParent('03/25/2010');

...而您的代碼將解析為

RefreshParent(03/25/2010);

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM