PDA

View Full Version : ارسال مقدار به صفحه باز کننده صفحه!!



sepideh_om
شنبه 07 اردیبهشت 1387, 12:12 عصر
سلام دوستان
من یک صفحه دارم که تو ش یک dropdownlist و دکمه هست که open window میکنه یک صفحه دیگه را و در آن صفحه یک مقداری را اضافه میکنه و با زدن دکمه ثبت بسته میشه
میخوام این مقدار رو که اضافه کرد به dropdownlist ام اضافه بشه
در ضمن من این کار را با javascript در asp.net(vb.net) میخوام انجام بدم
اگه کمکم کنید ممنون میشم

Behrouz_Rad
شنبه 07 اردیبهشت 1387, 12:15 عصر
از window.opener استفاده کن.

sepideh_om
شنبه 07 اردیبهشت 1387, 15:02 عصر
من میخوام به اون صفحه ای که بازش کرده یک مقدار بفرستم
باکد


Response.Write("<script language='javascript'> {parent.window.opener.document..getElementById('hi d4').value ='zz'; }</script>")

خواستم به یک hidden ای که تو صفحه باز کننده اش هست مقدار بفرستم اما نشد
اگه میشه بیشتر توضیح بدید
یا مثال بذارید

raravaice
یک شنبه 08 اردیبهشت 1387, 11:30 صبح
اینجوری معقول تره؟



<script type="text/javascript">
window.opener.document.getElementById('hid4').valu e ='zz';
</script>

sepideh_om
یک شنبه 08 اردیبهشت 1387, 12:30 عصر
من دارم تو code behinde صفحه ام این کد رو می نویسم و فکر نمیکنم این کد ما کار نکنه

anyway
در هر صورت من از این راه جواب نمیگیرم اگر ممکن بیشتر راهنماییم کنید

raravaice
یک شنبه 08 اردیبهشت 1387, 14:14 عصر
ضمن عرض خسته نباشید حضور شما دوست گرامی باید عرض کنم :



<script type="text/javascript">
function SenderHide(Arg){
window.opener.document.getElementById('hid4').valu e =Arg;
}
</script>



و با زدن دکمه ثبت بسته میشه
در رویداد onunload صفحه باز شده تابع بالا رو با مقدار آرگومان صدا بزنید.

تگ Body رو به شکل زیر تغییر بدید.


<body id="MyPage" runat="server">


بعد از انجام کارها در سمت سرور کد زیر رو ارسال کنید.



Dim TestValue As String = "1234567890"
Dim body As New HtmlGenericControl
body = Page.FindControl("MyPage")
body.Attributes.Add("onunload", "SenderHide('" & TestValue & "');")


anyhow موفق باشید ;)

sepideh_om
یک شنبه 08 اردیبهشت 1387, 16:21 عصر
ممنونم از اینکه وقت می گذارید و به سوالات جواب می دید


در رویداد onunload صفحه باز شده تابع بالا رو با مقدار آرگومان صدا بزنید

یهنی به صورت زیر بنویسم؟؟


<bodyid="MyPage"runat="server"onunload="SenderHide">

اگر منظور شما این باشه که error میده
در ضمن من تو صفحه ای که این صفحه رو باز میکنه چه جوری بفهمم که مقدار hidden ام تغییر کرده؟؟

raravaice
یک شنبه 08 اردیبهشت 1387, 17:47 عصر
فرم پدر : پنجره باز کننده
فرم فرزند : پنجره باز شده

ببینید شما میخواید از فرم فرزند یه مقدار رو بفرستید برای فرم پدر حالا این مقدار میتونه یه رشته باشه که از یه فیلد text گرفته میشه و قراره به یه فیلد hide توی tفرم پدر ارجاع داده بشه."چیزی که من فهمیدم"

حالا شما توی رویداد دکمه ثبت فرم فرزند مینویسی :



Dim TestValue As String = "1234567890"
Dim body As New HtmlGenericControl
body = Page.FindControl("MyPage")
body.Attributes.Add("onunload", "SenderHide('" & TestValue & "');")
و تگ Body هم همونطور که گفتم تغییر میدید.همینطور سورس جاوا اسکریپت رو میزارید بین تگ head صفحه فرزند.
توی سورسی که براتون مثال زدم مقدار TestValue همون مقداریه که شما میخوای به فرم پدر ارجاع بدید.

این اشتباهه :


<body id="MyPage" runat="server" onunload="SenderHide">
چون SenderHide یه تابع جاوا اسکریپت هست که آرگومان داره و باید با مقدار صدا زده بشه حتی اگر آرگومان هم نداشت باید پرانتز های تابع رو بزارید :


SenderHide('مقداری که قراره ارجاع داده بشه');
اگر صورت مسئله اینی که من فهمیدم نیست لطفا بیان کنید.

موفق باشید

sepideh_om
سه شنبه 10 اردیبهشت 1387, 09:36 صبح
سوال من دقیقا همینی هست که فرمودید
این کارا رو کردم اما ایراد میگیره :-(




<bodyid="MyPage"runat="server"onunload="SenderHide('zz')">

در ضمن نگفتید تو صفحه پدر چه جوری این مقدارو بگیرم
ببخشیدا!!!

raravaice
سه شنبه 10 اردیبهشت 1387, 10:44 صبح
مثال رو اینجوری میزنم که با مراحل HTML و javascript آشنا بشید مابقی کار ها به عهده خودتون که چیرو بفرستید.

صفحه فرزند


<head>
<title>Child</title>
<script type="text/javascript">
function Close(){
window.opener.document.getElementById('Text1').val ue=document.getElementById('TextChild').value;
window.close();
}
</script>
</head>
<body>
<input id="TextChild" type="text" />
<a href="#" onclick="Close();">Close</a>
</body>
</html>


صفحه پدر :


<head>
<title>Parent</title>
<script type="text/javascript">
function Open(){
window.open("child.aspx");}
</script>
</head>
<body>
<input id="Text1" type="text" />
<a href="#" onclick="Open();">Open</a>
</body>
</html>


صفحه پدر رو وقتی باز میکنید روی لینک open کلیک کنید تا پنجره فرزند با دستور window.open باز بشه و توی textbox صفحه فرزند اطلاعات رو وارد کنید بعد close کنید میبینید که اطلاعات عینا به صفحه پدر داخل textbox ارسال شده.
کل کاری که قرار هست شما انجام بدید اینه حالا اینکه دیتای شما چیه و چه جوری باید ارسال بشه به برنامه شما بستگی داره من قدرت حدس زدن ندارم.

موفق باشید