سؤال

هذا هو الكود التالي في التعليمات البرمجية خلف الملف Page_Load الحدث:

        LinkButton linkButton = new LinkButton();
        linkButton.ID = "LinkButtonDynamicInPlaceHolder1Id" + i;
        linkButton.ForeColor = Color.Blue;
        linkButton.Font.Bold = true;
        linkButton.Font.Size = 14;
        linkButton.Font.Underline = false;
        linkButton.Text = itemList[i].ItemTitle.InnerText;
        linkButton.Click += new EventHandler(LinkButton_Click);
        linkButton.Attributes.Add("LinkUrl",itemList[i].ItemLink.InnerText);
        PlaceHolder1.Controls.Add(linkButton); 
        Label label = new Label();
        label.ID = "LabelDynamicInPlaceHolder1Id" + i;
        label.ForeColor = Color.DarkGray;
        label.Text = itemList[i].ItemDescription.InnerText;
        PlaceHolder1.Controls.Add(label);

أريد خط فاصل بين كل التحكم التي تم إنشاؤها.

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

المحلول

وحل لقضية كسر الخط الخاص بك هو أقل ومع ذلك، إذا كنت تفعل هذا في الحدث Page_Load، ثم معالجات الحدث الخاص بك لا يعمل وذهابك لتصل الى القضايا دورة الصفحة الحياة. في الأساس، من أجل معالجات الأحداث إلى إطلاق النار على إعادة النشر، كنت حقا بحاجة الى أن إنشاء هذه الضوابط ديناميكية في دورة الصفحة الحياة في وقت سابق. حاول نقل التعليمات البرمجية لأسلوب OnInit إذا لم تصل إلى هذه المشكلة.

    LinkButton linkButton = new LinkButton();
    linkButton.ID = "LinkButtonDynamicInPlaceHolder1Id" + i;
    linkButton.ForeColor = Color.Blue;
    linkButton.Font.Bold = true;
    linkButton.Font.Size = 14;
    linkButton.Font.Underline = false;
    linkButton.Text = itemList[i].ItemTitle.InnerText;
    linkButton.Click += new EventHandler(LinkButton_Click);
    linkButton.Attributes.Add("LinkUrl",itemList[i].ItemLink.InnerText);
    PlaceHolder1.Controls.Add(linkButton); 

    //Add This
    PlaceHolder1.Controls.Add(new LiteralControl("<br />"));


    Label label = new Label();
    label.ID = "LabelDynamicInPlaceHolder1Id" + i;
    label.ForeColor = Color.DarkGray;
    label.Text = itemList[i].ItemDescription.InnerText;
    PlaceHolder1.Controls.Add(label);

نصائح أخرى

وهناك حل آخر هو أنك يمكن أن تضيف كل عنصر تحكم لوحة، والتي سوف تجعل كل منهم في <div> مما أدى إلى التأثير الذي تبحث عنه.

للي هذا من شأنه أن يكون أكثر ديناميكية لأنه إذا قمت بإخفاء أي من عناصر التحكم سوف تنهار شعبة ولم يترك خطوط فارغة.

    LinkButton linkButton = new LinkButton();
    linkButton.ID = "LinkButtonDynamicInPlaceHolder1Id" + i;
    linkButton.ForeColor = Color.Blue;
    linkButton.Font.Bold = true;
    linkButton.Font.Size = 14;
    linkButton.Font.Underline = false;
    linkButton.Text = itemList[i].ItemTitle.InnerText;
    linkButton.Click += new EventHandler(LinkButton_Click);
    linkButton.Attributes.Add("LinkUrl",itemList[i].ItemLink.InnerText);

    //Add control to a panel, add panel to placeholder
    Panel lbPan = new Panel();
    lbPan.Controls.Add(linkButton); 
    PlaceHolder1.Controls.Add(lbPan);


    Label label = new Label();
    label.ID = "LabelDynamicInPlaceHolder1Id" + i;
    label.ForeColor = Color.DarkGray;
    label.Text = itemList[i].ItemDescription.InnerText;

    //Add control to a panel, add panel to placeholder
    Panel lblPan = new Panel();
    lblPan.Controls.Add(label); 
    PlaceHolder1.Controls.Add(lblPan);

كيفية:إضافة عناصر تحكم إلى ASP.NET صفحة ويب برمجيا

في بعض الحالات قد ترغب خلق كل نص ثابت والضوابط. لإنشاء نص ثابت ، يمكنك استخدام إما حرفيا أو تسمية ملقم ويب التحكم.ثم يمكنك إضافة هذه ضوابط الحاوية كما كنت أي عنصر تحكم آخر.لمزيد من المعلومات عن وجهة نظر الدولة في عناصر التحكم التي تم إنشاؤها في وقت التشغيل ، راجع ملقم ويب ديناميكية ضوابط عرض الدولة.

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