2012-02-24 45 views
0

我想插入一些JavaScript函數,我在我的QueryString中使用了一個URL。我正在關閉DataGrid並關閉插入命令asp:LinkBut​​ton來調用PostBackUrl。這是我的網址:在PostBackUrl中使用JavaScript變量

PostBackUrl="ETaskerComments.aspx?etasker=12345&subCat=2" 

我從我的跳投頁讓我在JavaScript中查詢字符串,我想用我的JavaScript變量替換SUBCAT 12345和2。任何幫助都會很棒。

感謝

編輯:

讓我試圖澄清更多...

我有兩個查詢字符串

var eTasker = getQueryParam("eTasker"); 
var subCat = getQueryParam("subCat"); 

我想要得到的東西是這樣的:

PostBackUrl="ETaskerComments.aspx?eTasker=' + eTasker + '&subCat=' + subCat + '" 

我雖然像他的東西會工作,但asp:LinkBut​​ton不喜歡的語法。希望這有助於解釋。

謝謝

+0

我想你還沒有得到答案,因爲這個問題有點難以理解。你可以發佈一些示例代碼?這將有助於澄清。您始終可以使用JavaScript Replace()方法來替換文本,但我不確定這會回答您的問題。 – swannee 2012-02-24 15:05:10

+0

我試過了替換方法,它似乎不想在執行後回發。這在@ $$是一種痛苦。 :) – lazoDev 2012-02-24 18:50:41

回答

0

我能解決這個問題。我所要做的就是將代碼完整地從客戶端取出,並將其移到服務器端,以便與我想要的DetailsView進行交互(我知道我說DataGrid應該以同樣的方式工作)。 PostBackUrl似乎不接受變量,所以這不可能是一個選項。另外,我最終在ASPX頁面的頭部使用元標記來緩存頁面。以下是我所做的:

將這些元標記放在頁面頭部以確保您的頁面不緩存。

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> 
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"> 

第二,我們goign做一個C#事件處理程序捕獲回發事件,使我們所想要的頁面重載,讓我們的查詢字符串的進程。

<script type="text/c#" runat="server"> 

protected void Post_Back(object sender, EventArgs e) 
{ 
string subCat = Request.QueryString["subCat"].ToString(); 
string eTasker = Request.QueryString["eTasker"].ToString(); 
if (this.IsPostBack) 
{ 
    Response.Redirect("ETaskerComments.aspx?eTasker=" + eTasker + "&subCat=" + subCat + "&Dashboard_ID=" +subCat); 

} 


} 
</script> 

現在,而不是Post_Back附加到帶有一個onclick插入,我們將它與O​​nItemInserted參數附加到DetailsView控件:

<asp:DetailsView DefaultMode="Insert" OnItemInserted="Post_Back" runat="server" Width="700px" Height="50px" id="DetailsView1" AutoGenerateRows="False" DataSourceID="SqlDataSource1" DataKeyNames="ID" BackColor="#87AB7B" BorderColor="#1A120F" BorderWidth="1px" ForeColor="Black" CellPadding="2"> 

這就是它。確保沒有更多的調用附加到插入命令鏈接,這應該運行你的命令並刷新你的DataGrid/DetailsView與新插入的記錄。

感謝所有的意見。快樂編碼! :)

+0

爲什麼我會得到一個-1時,它的作品? – lazoDev 2012-02-27 14:11:24