PDA

View Full Version : باز كردن پنجره جديد و ارسال مقدار به آن



smakhavan
سه شنبه 01 دی 1388, 10:25 صبح
سلام
به چه صورت مي‌توان با فشار دادن يك دكمه يك پنجره جديد باز كرد و به آن با query string مقاديري ارسال نمود. مقادير ارسالي آن هم از ورودي هايي كه روي صفحه وجود دارد دريافت ميشود

مثلا من يك تكست دارم كه اسم فرد در آن نوشته ميشود و ميخواهيم با زدن دكمه به صفحه جديدي در پنجره جديد برويم كه اسم فرد در آن وارد شده باشد.

پس از جستجو به اين نتيجه رسيدم كه امكان باز كردن آن با دكمه وجود ندارد و بايد از جاوا و دستور open استفاده كرد و آن را به دكمه نسبت داد.
براي مثال براي براي PageLoad بنويسيم كه :


btnCreate.Attributes.Add("onclick", "window.open('page2.aspx?name=' + strName);")

اما با استفاده از آن نميتوان مقدار فعلي متن وارد شده را به پنجره جديد ارسال نمود.

از چه راهي براي رفع اين مشكل استفاده كنم؟

rasoul2023
سه شنبه 01 دی 1388, 10:39 صبح
سلام :

دوست عزیز روش انتقال اطلاعات با استفاده از Qurey String به صورت زیر میباشد :

برای ارسال مقادیر در Code Behind یک Button :



Response.Redirect("pagename.aspx?Yourvariabel=yourValue")


برای دریافت مقادیر پاس شده هم در پیج لود pagename.aspx


A new variabel = Request.QueryString("Yourvariabel")


البته این کار باعث این میشه که هکرها بتونند از این طریق یک حمله Xss و یا اینجکشن را ترتیب دهند برای جلوگیری از این موضوع باید که متغیرها را به طور صحیح معرفی کنید که در صورتی که یک هکر خواست کدی را به سایت تزریق کند برنامه با یک خطای مدیریت شده روبرو شود و پیغام خطا و یا ریدایرکت شدن اتفاق بیفتد .

موفق باشد .

smakhavan
سه شنبه 01 دی 1388, 11:19 صبح
ممنون ولي با اين قسمت مشكلي ندارم
ميخواهم وقتي ريدايركت ميشه يه صفحه جديد توي يه پنجره جديد باز بشه و مقادير مورد نظر كه توسط كاربر وارد شده به اون ارسال صفحه بشه (حالا يا از طريق كوئري استرينگ يا از طريق كوكي يا ... )

rasoul2023
سه شنبه 01 دی 1388, 12:15 عصر
يه صفحه جديد توي يه پنجره جديد باز بشه

منظورتون را متوجه نمیشم میشه نمونه یا مثال بزارید ؟

smakhavan
سه شنبه 01 دی 1388, 13:06 عصر
توي html يه دستوري داريم:

<a href=URL _target="blank">

معادل آن را براي دستور زير ميخوام

Response.Redirect("pagename.aspx?Yourvariabel=yourValue")

اين يعني پنجره جديد ، صفحه جديد

Himalaya
سه شنبه 01 دی 1388, 22:02 عصر
Page.ClientScript.RegisterClientScriptBlock(this.G etType(), "myPopupWindow", "window.open('page2.aspx?name=" + TextBox1.Text + "','','letf=0,top=0,width=880,height=600,margin-left=0,toolbar=0,scrollbars=1,status=0')", true);

smakhavan
چهارشنبه 09 دی 1388, 19:01 عصر
Page.ClientScript.RegisterClientScriptBlock(this.G etType(), "myPopupWindow", "window.open('page2.aspx?name=" + TextBox1.Text + "','','letf=0,top=0,width=880,height=600,margin-left=0,toolbar=0,scrollbars=1,status=0')", true);


خيلي ممنون
ولي با استفاده از اين كد صفحه مبدا هم دوباره ريفرش ميشود ولي من نيازي به آن ندارم و تنها ميخواهم با توجه به انتخابهاي فرد در صفحه اول نتايج مورد نظر در صفحه دوم نمايش داده شود

raziee
چهارشنبه 09 دی 1388, 20:37 عصر
شما میتونید در همون کد html به صفحه ی aspx بروید.
با یه کد جاوا اسکریپ ساده. که دیگه برای همچین کاری به سرور درخواست نشده.
یه فانکشن در جاوا اسکریپت بنویسید که مقادیر کوئری استرینگ رو دریافت کنه و به عنوان پارامتر کوری استرینگ صفحه جدید رو باز کنه.

Himalaya
پنج شنبه 10 دی 1388, 00:36 صبح
خيلي ممنون
ولي با استفاده از اين كد صفحه مبدا هم دوباره ريفرش ميشود ولي من نيازي به آن ندارم و تنها ميخواهم با توجه به انتخابهاي فرد در صفحه اول نتايج مورد نظر در صفحه دوم نمايش داده شود

تا قبل از تاپیک من
یادم نمیاد شما گفته باشی نمیخوای صفحه اول رفرش بشه


پس از جستجو به اين نتيجه رسيدم كه امكان باز كردن آن با دكمه وجود ندارد

من فقط خواستم بگم که وجود داره

smakhavan
پنج شنبه 10 دی 1388, 08:54 صبح
شما میتونید در همون کد html به صفحه ی aspx بروید.
با یه کد جاوا اسکریپ ساده. که دیگه برای همچین کاری به سرور درخواست نشده.
یه فانکشن در جاوا اسکریپت بنویسید که مقادیر کوئری استرینگ رو دریافت کنه و به عنوان پارامتر کوری استرینگ صفحه جدید رو باز کنه.

با تشكر فراوان
راستش من توي web تازه كارم و اطلاعات زيادي ندارم
گشتم و يه همچنين چيزي را پيدا كردم. اما توي IE‌ درست جواب ميده ولي توي فايرفاكس نه!!!:عصبانی++:
چكار بايد بكنم
ميشه يه مثال جاوا اسكريپتي يا هر راه ديگه اي داره برام بزنين



<body>
<script>
function geturl()
{
var ddlist=document.getElementById("JumpTo");
var tb=document.getElementById("City");
var index=ddlist.getAttribute("SelectedIndex");
var hyplink=document.getElementById("HyperLink1");
hyplink.href="Default4.aspx?St="+ddlist[index].value+"&City="+tb.value;
}
</script>

<form id="Form1" runat="server">
<p style="direction: ltr"> Jump To:<asp:dropdownlist id="JumpTo" runat="server" AutoPostBack="True">
<asp:listitem></asp:listitem>
<asp:listitem Value="AL"></asp:listitem>
<asp:listitem Value="AK"></asp:listitem>
<asp:listitem Value="AZ"></asp:listitem>
<asp:listitem Value="AR"></asp:listitem>
<asp:listitem Value="CA"></asp:listitem>
<asp:listitem Value="CO"></asp:listitem>
<asp:listitem Value="OK"></asp:listitem>
<asp:ListItem Value="LS"></asp:ListItem>
</asp:dropdownlist>
<br />
</p>
<p><asp:textbox id="City" runat="server"></asp:textbox><br />
<br />
<a id="HyperLink1" target="_blank" onclick="geturl()" href="">HyperLink</a></p>
<p>&nbsp;</p>

</form>
</body>