2011-11-15 5 views
1

私の場合は、私はasp.netページはサーバーコントロールの自動ポストバックは

<form id="form1" runat="server" target="_blank"> 

とボタンが別のページにリダイレクトするフォームを持っている持っている_blank属性を持っており、このページが新しいウィンドウで開きますの理由フォームのターゲット属性

<asp:Button ID="button1" runat="server" PostBackUrl="~/kindofpage.aspx" Text="Generate" /> 

と私はドロップダウンリストに、選択したデータで別のドロップダウンリストを埋めるために過去をポストする自動ポストバック= trueを設定しました。

<asp:dropdownliast id="Make" name="Make" runat="server" autopostback="true"></asp:dropdownlist> 

質問:なぜ自動ポストバックされたドロップダウンから項目を選択すると空白ページが開きますか?

私は

は良いアイデアの不足のために、

答えて

0

をありがとう、あなたは自分のマークアップからtarget="_blank"属性を削除することができ..空白のページをopenningずにドロップダウンリストでページを掲示する方法が必要ですボタンをクリックしたら、formタグをJavaScriptで変更し、属性を設定します。

OnClientClickプロパティを設定し、クリックするとJavaScriptを実行できます。たとえば:

<asp:Button ID="button1" OnClientClick="document.getElementById('form1').setAttribute('target', '_blank')" runat="server" PostBackUrl="~/kindofpage.aspx" Text="Generate" /> 
+1

ページを新しいタブでリダイレクトされません。しかし、 'target = _blank'属性が設定されるとどうなりますか?任意のリンクをクリックするたびに、同じウィンドウの代わりに新しいタブにページがリダイレクトされます。ページがリダイレクトされてから '_self'に設定されるか、フォームタグから削除されるまで、' target'属性を一時的に設定する方法はありますか? – Shell

-1
<form id="form1" runat="server"> 
0

あなたはいつもちょうどこのような新しいウィンドウを開きますにButtonPressコードを調整することができます:

<asp:Button ID="myBtn" runat="server" Text="Click me" 
onclick="myBtn_Click" OnClientClick="window.open('kindofpage.aspx', 'kindofpage');" /> 

その後、削除しますから

target="_blank" 

をフォームタグ。

+0

子ページのフォームタグからターゲットを削除しますか? –

+0

フォームタグと一緒に投稿したコードを使用してください:

。 javasciptコマンドのwindow.openは、ドロップダウンリストを使ってポストバックするときではなく、ボタンの押下時にのみ新しいタブを開く処理を行います。 – KreepN

0

私は同様の状況で苦労しましたが、次のように解決しました。 this answerで説明したように、OnClientClickプロパティを使用してターゲットを "_blank"に設定できます。例えば。あなたが戻ってあなたのオープナーフォームに行けば、今

<script type="text/javascript"> 
function resetTarget() { 
opener.document.forms[0].target = ''; 
} 
</script> 
<body onload="resetTarget()"> 

<asp:Button ID="button1" OnClick="codebehind_method" OnClientClick="document.forms[0].target = '_blank';" runat="server" Text="targets new window" /> 

はその後、私の「codebehind_method」機能はにリダイレクトaspxページでは、私はそうのようなオープナーフォームのターゲットをリセット"OnClientClick"プロパティが設定されていないコントロールを使用すると、AutoPostBackは同じタブに表示されます。 あなたは、IDによってフォームを見つけ交換したい場合は、「document.forms [0]」を:button1`がクリックされない `まで

document.getElementByID('yourFormName') 
関連する問題