asp.net :كيفية استخدام eventargs للمعلمة يمر على زر onclick?

StackOverflow https://stackoverflow.com/questions/830152

سؤال

لقد رأيت بعض التعليمات البرمجية التي تمر الناس المعلمة من خلال 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;
           }
}

المصدر: aspnet-تمر-المعلمات-في-زر الماوس الأيمن فوق معالج

نصائح أخرى

والضوابط نوع مختلف زر في. NET لها الحدث OnCommand وكذلك حدث OnClick. عند استخدام هذا الحدث OnCommand لديك المعلمات الإضافية التي يمكن أن تنطبق على زر مثل CommandName وCommandArgument. ويمكن بعد ذلك الوصول إليها في CommandEventArgs.

ومن المفيد في الأماكن التي تريد تعيين نفس الأسلوب لأزرار متعددة واستخدام المعلمات CommandName وCommandArgument للإشارة إلى ما وظيفة النقر على هذا الزر سوف تنتج.

والطبقة EventArgs هي الفئة الأساسية. طرق الويب الأخرى استخدام وسائط حدث الأخرى.

ومنها مثلا. وLinkButton ديه الحدث OnClick مع معلمة EventArgs افتراضي، ولكن كما أن لديها حدث حسب الطلب يأخذ معلمة CommandEventArgs : EventArgs التي لديها بعض المعلومات الإضافية (أي CommandName وCommandArgument).

والطبقة وسائط الحدث القاعدة هي فقط هناك بأنها حامل مكان حتى يتسنى لجميع EventHandlers تتفق مع توقيع مماثل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top