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

أريد أن أضيف أدوات بالجافاسكربت للصفحة لكى أتعامل معها من خلال Asp

بدأه _- محمد نور -_ في 13 نوفمبر 2009 · 3 رد · 548 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

حياكم الله

أريد أن أضيف textarea بعدد معين إلى الصفحة و ذلك بدون الرجوع إلى السيرفر من أجل هذه العملية

كتبت كود من أجل ذلك بالجافاسكربت و هو بالفعل يعمل بكفاءة غير أننى لا أستطيع أن أتعامل مع الtextarea التى أضافها إلى الصفحة من خلال الASP

حينما يحدث PostBack فلا أستطيع أن أصل إلى الأدوات التى تم إضافتها بل إنه لا يشعر بها أصلا

قطعا لكونها ليست server side Control

كود الجافاسكربت

<script type="text/javascript">
	window.onload = GetTxtNum;
	var panID;

	function GetTxtNum()
	{
		panID = '<%=panAnswers.ClientID%>';
		document.getElementById("AnsNum").selectedIndex = 0;
		document.getElementById("AnsNum").onchange = createControls;
	}

	function createControls()
	{
		var temp = document.getElementById("AnsNum");
		var num = temp.options[temp.selectedIndex].value;

		document.getElementById(panID).innerHTML="";

		var controlsBuffer="";
		//var run = 'runat=\"server\"';
		for(var i = 1; i <= num; i++)
		{
			controlsBuffer += '<h4 style="font-weight: lighter; margin-top: 5px; margin-bottom: 5px">Answer No# '+ i + '</h4>'+
			'<textarea ID=\"txtA' + i + '\" style="width:800px;height:70px"></textarea>';
		}
		document.getElementById(panID).innerHTML=controlsBuffer;
	}
	</script>

أقوم بإختيار من select عدد الtextarea المرغوب بها ثم أقوم بإستخدامه لكى أنتج العدد المطلوب

هذا كود السيرفر

foreach (Control textBox in this.panAnswers.Controls)
		{
			if (textBox is HtmlTextArea)
			{

				if (((HtmlTextArea)textBox).Value.Trim() != string.Empty)
				{
					answers.Add(((HtmlTextArea)textBox).Value);
				}
			}
		}

كيف أجعل الtextarea مرئية فى السيرفر !!

ملحوظة جانبية

يوجد بالفعل فى الصفحة textarea و أستطيع الوصول إليها بكفاءة من خلال السيرفر و لكن هذه أضفتها حينما كنت أنشئ الصفحة أول مرة و بها

runat="server"

و لكن الأخرين بالطبع ليس بهم !

لا إله إلا الله محمد رسول الله

アッラー以外に神はなし。ムハンマドはアッラーの使徒である

#2

السلام عليكم

يمكنك الوصول الى العناصر التي تم انشائها بواسطة Javascript عن طريق Request.Form ولكن لايجب انشاء هذه العناصر عن طريق وضعها في InnerHtml في خصائص العنصر في Javascript ولكن يجب انشائها عن طريق document.createElement

كما في الكود التالي

<script language=javascript>
	function createControls() {
		var panID = document.getElementById("panID");
		for (var i = 0; i < 5; i++) {
			var newTextArea = document.createElement("TextArea");
			newTextArea.setAttribute("id", "txtA" + i);
			newTextArea.setAttribute("name", "txtA" + i);
			newTextArea.setAttribute("style", "width:800px;height:70px");
			panID.appendChild(newTextArea);
		}
	}
</script>

ومن ثم يمكن معالجة البيانات على السيرفر بواسطة Request.Form والتي تحتوي على اسماء العناصر كافة مع بياناتها كما في الكود التالي الذي يوضح كيفية التعامل مع هذه العناصر

	   string html = "";

		for (int i = 0; i < Request.Form.Count; i++)
		{
			html = html + Request.Form.Keys + "=" + Request.Form + "<br/>";
		}
		Response.Write(html);

كما في الصورة بعد أن ضغط على زر Add يتم اضافة عدد من المربعات وندخل بعض البيانات

post-166890-1258190215_thumb.png

ثم نضغط على الزر view لنشاهد البيانات بعد معالجتها على السيرفر

post-166890-1258190266_thumb.png

في المرفقات المثال كامل

WebSite6.zip

تم تعديل هذه المشاركة بواسطة sufian2020 في 14 نوفمبر 2009 في 12:21

رَبِّ أَوْزِعْنِي أَنْ أَشْكُرَ نِعْمَتَكَ الَّتِي أَنْعَمْتَ عَلَيَّ وَعَلَى وَالِدَيَّ وَأَنْ أَعْمَلَ صَالِحًا تَرْضَاهُ وَأَدْخِلْنِي بِرَحْمَتِكَ فِي عِبَادِكَ الصَّالِحِينَ

تلاوات خاشعة مؤثرة

#3

طيب لو انا عايز امرر برامتر في functon

مش هاتكون كدة

<script language=javascript>

function createControls(var s) {

var panID = document.getElementById("panID");

for (var i = 0; i < 5; i++) {

var newTextArea = document.createElement("TextArea");

newTextArea.value=" "+i+"";

newTextArea.setAttribute("id", "txtA" + i);

newTextArea.setAttribute("name", "txtA" + i);

newTextArea.setAttribute("style", "width:800px;height:70px");

panID.appendChild(newTextArea);

}

}

</script>

وفي حدث click هايكون كدة

<button onclick="createControls(4)" style= "width:70px; height:70px">add</button>

انا عملت كدة ما اشتغلتش

#4

حاجة تانية

انا ضفت كنترول

Literal1.Text

عايز اطلع ناتج السكريببت فية

<script language=javascript>

function gett()

{

Literal1.Text=" <img src="PIC1.jpg" style="width: 225px; height: 126px" />";

}

<button onclick="gett()" style= "width:70px; height:70px">add</button>

مفيش حاجة طلعت برضو

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…