Dot net In Blue

چهارشنبه، فروردین ۰۹، ۱۳۸۵

باز کردن پنجره جدید در asp.net


دوست عزیزی سوال جالبی کرد :"در جاوا اسكريپت دستوري به نام window.open براي ايجاد يك پنجره خالي داشتيم مي خواهم بدانم اين دستور در سي شارپ دات نت نيز وجود دارد يا خير" .

 باید همیشه یادمون باشه که #C و بقیه زبانهایی که با اونها دات مینویسم در حقیقت یک تکنولوژی سرور ساید رو توسعه میدن ، به همین جهت نباید از آونها توقع داشته باشیم که کارهای کلاینت ساید رو انجام بدن و در هر حال اگر هم با دات نت کار کلاینت سایدی میشه تنها جاوا اسکریپتیه که توسط خود برنامه تولید میشه ! (اگه دقت کنید همیشه یه فایل جاوا اسکریپت هم روی سرور شما موجوده که کلاسهای مورد نیاز دات نت رو در بر میگیره )
ولی برای اینکه بخوایم کاری کنیم که توسط برنامه نویسی دات نت یک پنجره باز بشه و اطلاعات فیلد های اون پنجرذه به پنجره مادر برگرده بدون اینکه یک خط جاوا اسکریپت توی وب فرم هامون بنوسیم باید جاوا اسکریپت رو به صفحه تزریق کنیم این کد به ما کمک میکنه تا این کار رو بکنیم :


این کد برای پنجره مادر است :


Code:
public class Default : Page
{
protected TextBox txtFirstName;
protected TextBox txtLastName;
protected Label Label1;
protected Label Label2;
protected HyperLink HyperLink1;
private void Page_Load(object sender, EventArgs e)
{
//create our update function
string scr = @"<script>
function update(elemValue)
{
document.getElementById('txtFirstName').innerText=elemValue[0];
document.getElementById('txtLastName').innerText=elemValue[1];
}
</script>";
// register the javascript into the Page
Page.RegisterClientScriptBlock("update", scr);
//add our popup onclick attribute to the desired element on the page (Here, Hyperlink1)
HyperLink1.Attributes.Add("onclick", "window.open('popup.aspx',null,'left=400, top=100, height=250, width= 250, status=n o, resizable= no, scrollbars= no, toolbar= no,location= no, menubar= no');");
}


و اما پنجره فرزند (پنجره ای که باز شده ) :


Code:
public class popup : System.Web.UI.Page
{
protected System.Web.UI.WebControls.TextBox TextBox1;
protected System.Web.UI.WebControls.Label Label2;
protected System.Web.UI.WebControls.TextBox txtLastName;
protected System.Web.UI.WebControls.TextBox txtFirstName;
protected System.Web.UI.WebControls.Label Label1;
private void Page_Load(object sender, System.EventArgs e)
{
string scr= @"<script>
function Done()
{
var fName=document.getElementById('txtFirstName').value;
var lName=document.getElementById('txtLastName').value;
var ret= new Array(fName,lName);
window.opener.update(ret);
window.close();
}
</script>;";
Page.RegisterClientScriptBlock("done", scr);
}
 

1 Comments:

  • یه سوال
    اکثر مرورگرها یا پلاگین های اونها جلوی باز شدن پنجره های popup رو می گیرن.
    حالا این پنجره باز می شه یا اینکه جلوی اون گرفته می شه؟

    By Anonymous ناشناس, at ۱:۲۷ بعدازظهر  

ارسال یک نظر

<< Home