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

استدعاء دالة سي شارب داخل دالة جافا سكربت لعمل فاليديشن

مغلق
بدأه momi في 3 أبريل 2007 · 4 رد · 1,029 مشاهدة · في ASP.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

إخواني لدي مشكلة في استدعاء دالة سي شارب من داخل دالة جافا سكربت

فأنا أريد أن أعمل فاليديشن من clint sideفي كود جافا سكربت ثم استدعي فنكشن اسمها

_('','')doPostback

وهذه الفنكشن مهمتها هي نقل الحدث إلى السيرفر لتنفيذ الكود المكتوب في دالة السي شارب..

واليكم الكود وهو كالتالي:

الكود المكتوب في دالة السي شارب يتنفذ من عند السيرفر سايد

 <script runat="server">

protected void CsharpFunction_Click(object sender, EventArgs e)

   {
response.write("save");
   }

</script>

وهذا الكود مكتوب في الجافا سكربت يتنفذ عند الكلاينت سايد

 <script language="javascript" type="text/javascript">

function validate_Click( )
{
	var valid = true;
var user=document.getElementById("<%=txtDescription.ClientID%>").value

var character=/^[a-zA-Z]+$/;


if ( user == "" )
	{
		alert ( "Please fill in the 'Your Name' box." );
	   return false;
	}
else
	if(!(character.test(user))) {
	   alert("The username contains illegal characters");
return false;
	}

   Else
 {
return true;
	__doPostBack(' Csharp ','');
 }
}
</script>

وهذا الكود في asp يتنفذ عند السيرفر سايد

 </asp:Content>
<asp:TextBox ID="txtDescription" runat="server" TextMode="MultiLine" ></asp:TextBox>

<asp:Button  ID="btnSave" runat="server" Text="Save & Next" OnClientClick=" return validate_Click()"/>

<asp:linkbutton  id="Csharp" runat="server" onclick=" CsharpFunction _Click"/>

</asp:Content>

الله يعافيكم ردوا علي في أقرب وقت فأنا في أمس الحاجة لمعرفة ذلك..

#2

ألسلام عليكم

بصراحه انا لم افهم بعض كودك ولكن لى ملاحظه

var user=document.getElementById("<%=txtDescription.ClientID%>").value

فما اعرفه عن هذه الداله انها لا تعمل هكذا

بل هكذا

var user=document.getElementById("myControlID").getAttribute("value");
hh.jpg
#3

السلام عليكم

هنالك عدة ملاحظات علي الكود أخي الكريم

اولا في ال __doPostBack استخدم الproperty UniqueID مثل

__doPostBack('<%=Csharp.UniqueID  %>','')

ثانيا انت واضع return statment قبل ال doPostBack function وبهذه الحالة لن يتم تنفيذ ال doPostBack function ابدا

الاّن الزر btnSave هو عباره عن sumbit button فعليك عمل أحدا الأمرين التاليين

اما ان تضيف الUseSubmitBehavior وتجعلها تساوي false للbtnSave

او ان تجعل ناتج الدالة validate_Click( ) دائما يكون false اي

function validate_Click()
{...
.......
else
{	  
__doPostBack('<%=Csharp.UniqueID%>','')
}
...
return false;

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

#4

أخي Mo7eb_alrasool

الله يوفقك ويفتحها بوجهك ويرزقك الجنة

الله يجزاك خير فعلا مشكلتي انحلت.

جملة return true هذي وضعتها سهوا عندما كنت أنسخ الكود لأبسطه لكم فالكود كان معقد أكثر من ذلك..

أخي SomeOne83

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

#5

السلام عليكم

حياك الله أخي الكريم

سبحانك اللهم وبحمدك أشهد ان لا اله الا أنت

أستغفرك وأتوب اليك

الهم صلي وسلم وبارك على سيدنا وحبيبنا محمد

هذا الموضوع مغلق.

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

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

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

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

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