الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

كبفبة ايجاد اداة داخل Webusercontrol بواسطة الجافا سكريبت

بدأه TareqVB في 14 مارس 2008 · 8 رد · 1,020 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله

قمت بتصميم اداة

webusercontrol

واريد ان أملأ الحقول التي بها من صفحة منبثقة

popup

بواسطة الجافا سكريبت لكن لا استطيع ايجاد الادوات التي بداخلها

فقد استخدمت

document.getElementById('" + srchClients1.ClientID.ToString + اسم الاداة داخل الاداة

ولكن لم تجدي نفعا

مرفق مثال جاهز من احدى المقالات فقد قم بالتعديل عليه ووضعت به

usercontrol

popup.rar

#2

عذراً أعتقد أن البروجكت بإستخدام 2008 لم أستطع فتحه.

لنفرض أن الكنترول هو تكست واسمه txt يمكن الوصول عن طريق

var a1 = document.getElementById(GetClientId('txt'));

للوصول لهذاال كنترول داخل usercontrol يمكن إستخدام الدالة التالية :

function GetClientId(strid)
{
	 var count=document.forms [ 0 ] . length;
	 var i = 0;
	 var eleName;
	 for (i = 0; i < count; i++ )
	 {
	   eleName = document.forms [ 0 ] . elements [ i ] .id;
	   pos=eleName.indexOf ( strid );
	   if(pos >= 0) break;		   
	 }
	return eleName;
}

شكرا

#3

المشكلة اختي الكريمة عند وضع استخدام user control فالاسم يختلف بحيث اذا كان الاسم txt يصبح uc_txt و us مثلا اسم الكنترول وايضا هذه عالجتها باستخدام clientID وحتى عند فتح السورس للصفحة يكون الاسم صحيح لكن دائما يظهر خطأ .

المثال اخذته من الموقع http://www.eggheadcafe.com/articles/20060117.asp

وفعلا انا استخدم 2008 لكن من السهل التحويل الى اي اصدار سابق فالكود لم يختلف

#4

الدالة المرفقة تعطيك اسم الكنترول الموجود فعلاً داخل usercontrol وبعد ذلك ثبته في الصفحة

#5

اخي مافي داعي لكل هذا التعقيد على كل حال انا عملت مثال صغير وهو موجود بالمرفقات حمله وشغله وانا بالمثال استخدمت showModalDialog ولاحظ كيف اقوم بعملية استرجاع القيم من نافذة ال،popUp واذا كان هناك اي مشكلة ممكن ان نناقشها هنا

   protected void Page_Load(object sender, EventArgs e)
	{
		StringBuilder script = new StringBuilder();
		script.Append("function popUp(){");
		script.Append("var vRValue = window.showModalDialog('frmPopUp.aspx');");
		script.Append("document.getElementById('" + txtFirstName.ClientID + "').value=vRValue[0];");
		script.Append("document.getElementById('" + txtLastName.ClientID + "').value=vRValue[1];");	
		script.Append("}");
		ClientScript.RegisterClientScriptBlock(this.GetType(), "script", script.ToString(), true);
		btnClickHere.OnClientClick = "java script:popUp();return false;";
	}

	protected void Page_Load(object sender, EventArgs e)
	{
		StringBuilder script = new StringBuilder();
		script.Append("function get(){");
		script.Append("var Arguments=new Array(2);");
		script.Append("Arguments[0]=document.getElementById('" + UcPopup1.firstName.ClientID + "').value;");
		script.Append("Arguments[1]=document.getElementById('" + UcPopup1.lastName.ClientID + "').value;");
		script.Append("window.returnValue=Arguments;");
		script.Append("this.close()");
		script.Append("}");
		ClientScript.RegisterClientScriptBlock(this.GetType(), "script", script.ToString(), true);
		btnAdd.OnClientClick = "java script:get();return false;";
	}

showModalDialog.zip

تم تعديل هذه المشاركة بواسطة محمد سماقية في 16 مارس 2008 في 10:08

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#6

السلام عليكم

مشكور اخ محمد على ردك لكني اريد ان اطلب الشاشة من خلال اداة اي ان ال usercontrol تحتوي على زر ومربعين للنص

من خلال كودك استطعت ان احصل على المطلوب لاداة واحدة لكن المشكلة بقيت عند وجود اكثر من اداة في نفس الصفحة

مثالك السابق مع تعديل المطلوب والمشكلة

showModalDialog.rar

#7
	protected void Page_Load(object sender, EventArgs e)
	{
		StringBuilder script = new StringBuilder();

		script.Append("function popUp(btnFirst,btnLast){");
		script.Append("var vRValue = window.showModalDialog('frmPopUp.aspx');");
		script.Append("document.getElementById(btnFirst).value=vRValue[0];");
		script.Append("document.getElementById(btnLast).value=vRValue[1];");
		script.Append("}");
		Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "script", script.ToString(), true);
		Button1.OnClientClick = "java script:popUp('" + txtFirstName.ClientID + "','" + txtLastName.ClientID + "');return false;";
	}

showModalDialog_.zip

تم تعديل هذه المشاركة بواسطة محمد سماقية في 16 مارس 2008 في 14:52

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

#8

السلام عليكم ورحمة الله

جزاك الله خيرا وزادك علما

فعلا هذا هو المطلوب

ومع اني مبتدأ جافا سكريبت الا اني عدلت على الكود في حالة اغلاق الشاشة دون اختيار القيم

script.Append("if (vRValue != null ){");
		script.Append("document.getElementById(btnFirst).value=vRValue[0];");
		script.Append("document.getElementById(btnLast).value=vRValue[1];}");

تم تعديل هذه المشاركة بواسطة TareqVB في 16 مارس 2008 في 15:17

#9
TareqVB كتب:
السلام عليكم ورحمة الله

جزاك الله خيرا وزادك علما

فعلا هذا هو المطلوب

ومع اني مبتدأ جافا سكريبت الا اني عدلت على الكود في حالة اغلاق الشاشة دون اختيار القيم

script.Append("if (vRValue != null ){");
		script.Append("document.getElementById(btnFirst).value=vRValue[0];");
		script.Append("document.getElementById(btnLast).value=vRValue[1];}");

:rolleyes:

-----------------------------------------------------------------------------------------------------------------------------





 

ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

Mohammad Sonaiea
 

مواضيع مشابهة