2012-02-24 31 views
0

URLのQueryStringに使用しているJavaScript関数をいくつか挿入しようとしています。私はDataGridの作業をして、Insertコマンドasp:LinkBut​​tonのPostBackUrlを呼び出しています。ここに私のURLは次のとおりです。PostBackUrlでJavaScript変数を使用する

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

私は私のジャンパーページからJavaScriptで私のクエリ文字列を取得していますし、私は私のJavaScriptの変数とSUBCATで12345と2を交換したいです。どんな助けも素晴らしいだろう。

おかげ

編集:

私はより多くを明確にしてみましょう...

私はこのような何かを取得したいと思っています2つのクエリ文字列

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

あります

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

私は彼のようなものが働くが、asp:LinkBut​​tonは構文が気に入らない。説明の中でこれが役立つことを願っています。

ありがとうございました

+0

少し質問が分かりにくいのでまだ答えが出ていないと思います。いくつかのサンプルコードを投稿できますか?それは明確にするのに役立ちます。あなたはいつでもJavaScriptのReplace()メソッドを使ってテキストを置き換えることができますが、私はあなたの質問に答えているかどうかは分かりません。 – swannee

+0

私はreplaceメソッドを試しましたが、実行後にポストバックしたくないようです。これは@ $$の痛みです。 :) – lazoDev

答えて

0

私はこの問題を解決できました。私がしなければならなかったのは、クライアント側からコードを完全に取り出し、それをサーバー側に移動して、DetailsViewとやりとりすることでした。 PostBackUrlは変数を受け付けるようには見えないので、これをオプションにすることはできません。また、ASPXページの先頭にあるメタタグを使用してページをキャッシュしませんでした。ここに私がしたことがあります:

これらのメタタグをページの先頭に入れて、ページがキャッシュされないようにしてください。

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

第二に、我々はプロセスで私たちのクエリ文字列を取得し、ポストバックイベントをキャプチャし、我々はそれをしたいページのリロードを行うために、C#のイベントハンドラを作成するgoignされています。

<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"> 

ことです:

<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を取り付けるのは、我々はOnItemInsertedパラメータでたDetailsViewに添付しようとしています。 Insertコマンドのリンクにコールが追加されていないことを確認してください。コマンドが実行され、新しく挿入されたレコードでDataGrid/DetailsViewが更新されます。

すべてのビューをお寄せいただきありがとうございます。ハッピーコーディング! :)

+0

なぜ私は-1を取得するつもりですか? – lazoDev

関連する問題