سؤال

أنا أستخدم C # .NET

لدي مكرر ضمن طريقة عرض (multiview) يحتوي كل صف على زر "تحرير" (مخزن على CommandArgument هو معرف النوع).

<asp:Button ID="buttonClick" OnCommand="ButtonClick" CommandArgument='<%#Eval("ID")%>' runat="server" Text="Edit"/>

عند النقر فوق المستخدم على زر "تحرير"، يتم أخذها من خلال عرض آخر (تحرير طريقة العرض).

يعتمد على أي نوع EVEN ("معرف") محددا يجب أن يكون UserControl مختلفا يجب أن يكون مرئيا.

لقد لاحظت أنه إذا حدث إعادة النشر في نفس النموذج (تحرير طريقة العرض) تخسر حالتها للتحكم الديناميكي. لذلك أعتقد أنني بحاجة إلى الوصول إلى / ملء Div (AppViewarea) عبر Page_load.

ضمن صفحة التحميل الخاصة بي، أريد فقط أن تملأ DIV باستخدام UserControl الصحيح إذا كان المستخدم قد وصل إلى طريقة العرض "تحرير". هنا هو ما لدي حاليا داخل صفحتي.

if(_multiView1.ActiveViewIndex == 1) // This is the Edit View
{
  int typeId = Convert.ToInt32(viewAppointmentID.Value); // viewAppointmentID is a hidden field which is created within the ButtonClick method.

switch (typeId)
{
  case 1:
        {
          var control = Page.LoadControl("~/editBirthAppointment.ascx");
          appViewArea.Controls.Add(control); 
        }
        break;
  case 2:
        {
          var control = Page.LoadControl("~/editDeathAppointment.ascx");
          appViewArea.Controls.Add(control); 
        } 
        break;
}
}

protected void ButtonClick(object sender, CommandEventArgs e)
{
   var viewAppointmentID = Convert.ToInt32(e.CommandArgument);
   _multiView1.ActiveViewIndex = 1;
}

مشكلتي هي أنه لا يذهب أبدا إلى الإفتالية (_mutliview) ولا تخزن أيضا ViewappointId. لقد بحثت حول الويب ولكني لا أستطيع العثور على أي شيء يساعدني حقا. هل يمكنني الوصول إليها بطريقة خاطئة؟

شكرا مقدما على أي مساعدة.

شكرا

كلير

هل كانت مفيدة؟

المحلول 2

أضفت هذا الرمز بدلا من ذلك في حدث الزر "الزر". يبدو أنه يعمل الآن حتى يجب تخزينه داخل ViewState.

نصائح أخرى

لا تحتاج إلى Page_Load ولكن حدث OnCommand من الشبكة وفي هذا الحدث، يمكنك التحقق من اسم الأواني و / أو CommandArguments

يبدو أنه يجب عليك استخدام

  if(!Page.IsPostback())
       // fill grid here

وفي حدث onrowcommand يمكنك إضافة UserControls إلى الصفحة

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