سؤال

كأن .net / c # على شبكة الإنترنت جديدة، أنا دائما تعثر عندما أحاول استخدام FindControl. بلام - فلاذ على وجهي. فيما يلي مشكلة FindControl الحالية:

لدي صفحة .aspx وتشكيلها، ثم AJAX UpdatePanel، داخلها يوجد DataList الخاص بي (DataList1) يحتوي على EditeDemtemplate: يحتوي ذلك على ما يلي:

<EditItemTemplate>
<asp:Label ID="thumbnailUploadLabel" runat="server" text="Upload a new thumbnail image:"/><br />
<asp:FileUpload ID="thumbnailImageUpload" runat="server" />
<asp:Button ID="thunbnailImageUploadButton" runat="server" Text="Upload Now" OnClick="thumbnailUpload"/><br />
</EditItemTemplate>

في رمز C # الخاص بي وراء لدي رمز OnClick لكائن Fileupload:

        protected void thumbnailUpload(object s, EventArgs e)

    {

    if (thumbnailImageUpload.HasFile)

      {

      //get name of the file & upload

          string imageName = thumbnailImageUpload.FileName;

          thumbnailImageUpload.SaveAs(MapPath("../../images/merch_sm/" + imageName));

          //let'em know that it worked (or didn't)
          thumbnailUploadLabel.Text = "Image " + imageName + "has been uploaded.";
         }
         else
         {
         thumbnailUploadLabel.Text = "Please choose a thumbnail image to upload.";
     }

بطبيعة الحال، أتلقى "مرجع كائن لم يتم تعيينه إلى مثيل كائن" لمجموعة Fileupload والسمية.

ما هو بناء الجملة الصحيح للعثور على هذه الضوابط، قبل التعامل معها في حدث OnClick؟

الطريقة الوحيدة التي تستخدمها Ive FindControl هي شيء مثل:

label thumbnailuploadlabel = datalist1.findcontrol ("thumbnailuploadlabel") كعلامة؛

ولكن بالطبع هذا هو إلقاء خطأ "مرجع الكائنات غير مضبوط على مثيل كائن". أي مساعدة موضع تقدير كبير.

(لقد رأيت أيضا الشفرة "العودية" هناك من المفترض أن تجعل استخدام FindControl أسهل. ها! أنا أخضر جدا في ج # أنني لا أعرف حتى كيفية دمج تلك الموجودة في مشروعي.)

شكرا للجميع لإلقاء نظرة على هذا.

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

المحلول

أعلم أن هذا هو جحيم متأخرا كثيرا لكنني كنت أبحث عن أسئلة للإجابة .... يجب أن تكون قد احسبها الآن ولكن لا يزال

إذا قمت بإضافة هذه الخطوط في التعليمات البرمجية الخاصة بك

protected void thumbnailUpload(object sender, EventArgs e)
    {
        FileUpload thumbnailImageUpload =(FileUpload)DataList1.Items[DataList1.EditItemIndex].FindControl("thumbnailImageUpload");
        Label thumbnailUploadLabel = (Label)DataList1.Items[DataList1.EditItemIndex].FindControl("thumbnailUploadLabel");
        if (thumbnailImageUpload.HasFile)
        {

           //Your code here

        }
        else
        {
            thumbnailUploadLabel.Text = "Please choose a thumbnail image to upload.";
        }
    }

سيجد هذا التحكم المناسب للصف الذي تحريره ...

احتفظ أيضا بمستحرك خارج لوحة التحديث لوحة التحديث غير متوافقة مع fileupload. إذا قمت بتشغيل الرمز ولكنه سيظهر دائما thumbnailimageupupload.hasfile. كما خطأ شنيع.

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