asp.net :كيفية استخدام eventargs للمعلمة يمر على زر onclick?
-
06-07-2019 - |
سؤال
لقد رأيت بعض التعليمات البرمجية التي تمر الناس المعلمة من خلال commandParameter الملكية من السيطرة على شبكة الإنترنت.ثم ما هو استخدام eventargs.
المحلول
هذا يمكن أن يكون مفيدا إذا كان لديك نفس EventHandler طريقة أزرار مختلفة.سبيل المثال ، يقول العلامات الخاص بك تبدو مثل هذا:
<asp:Button ID="button1" runat="server" CommandArgument="MyVal1"
CommandName="ThisBtnClick" OnClick="MyBtnHandler" />
<asp:Button ID="button2" runat="server" CommandArgument="MyVal2"
CommandName="ThatBtnClick" OnClick="MyBtnHandler" />
هل يمكن أن يكون نفس معالج الحدث لكل من الأزرار التفريق على أساس CommandName:
protected void MyBtnHandler(Object sender, EventArgs e)
{
Button btn = (Button)sender;
switch (btn.CommandName)
{
case "ThisBtnClick":
DoWhatever(btn.CommandArgument.ToString());
break;
case "ThatBtnClick":
DoSomethingElse(btn.CommandArgument.ToString());
break;
}
}
نصائح أخرى
والضوابط نوع مختلف زر في. NET لها الحدث OnCommand
وكذلك حدث OnClick
. عند استخدام هذا الحدث OnCommand
لديك المعلمات الإضافية التي يمكن أن تنطبق على زر مثل CommandName
وCommandArgument
. ويمكن بعد ذلك الوصول إليها في CommandEventArgs
.
ومن المفيد في الأماكن التي تريد تعيين نفس الأسلوب لأزرار متعددة واستخدام المعلمات CommandName
وCommandArgument
للإشارة إلى ما وظيفة النقر على هذا الزر سوف تنتج.
والطبقة EventArgs
هي الفئة الأساسية. طرق الويب الأخرى استخدام وسائط حدث الأخرى.
ومنها مثلا. وLinkButton ديه الحدث OnClick مع معلمة EventArgs افتراضي، ولكن كما أن لديها حدث حسب الطلب يأخذ معلمة CommandEventArgs : EventArgs
التي لديها بعض المعلومات الإضافية (أي CommandName وCommandArgument).
والطبقة وسائط الحدث القاعدة هي فقط هناك بأنها حامل مكان حتى يتسنى لجميع EventHandlers تتفق مع توقيع مماثل.