سؤال

وكيف يمكنني الوصول إلى التحكم في LayoutTemplate عنصر تحكم ListView؟

ولست بحاجة للحصول على litControlTitle وتعيين سمة Text لها.

<asp:ListView ID="lv" runat="server">
  <LayoutTemplate>
    <asp:Literal ID="litControlTitle" runat="server" />
    <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
  </LayoutTemplate>
  <ItemTemplate>
  </ItemTemplate>
</asp:ListView>

وأي أفكار؟ ربما عن طريق الحدث OnLayoutCreated؟

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

المحلول

وجرب هذا:

((Literal)lv.FindControl("litControlTitle")).Text = "Your text";

نصائح أخرى

والحل الكامل:

<asp:ListView ID="lv" OnLayoutCreated="OnLayoutCreated" runat="server">
  <LayoutTemplate>
    <asp:Literal ID="lt_Title" runat="server" />
    <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
  </LayoutTemplate>
  <ItemTemplate>
  </ItemTemplate>
</asp:ListView>

في codebehind:

protected void OnLayoutCreated(object sender, EventArgs e)
{
    (lv.FindControl("lt_Title") as Literal).Text = "Your text";
}

وهذه التقنية تعمل للتخطيط القالب. استخدام الحدث الحرف الأول من السيطرة:

<asp:ListView ID="lv" runat="server" OnDataBound="lv_DataBound">
  <LayoutTemplate>
    <asp:Literal ID="litControlTitle" runat="server" OnInit="litControlTitle_Init" />
    <asp:PlaceHolder ID="itemPlaceHolder" runat="server" />
  </LayoutTemplate>
  <ItemTemplate>
  </ItemTemplate>
</asp:ListView>

والتقاط إشارة إلى التحكم للاستخدام في التعليمات البرمجية الخلفية (على سبيل المثال) في حالة ربط بيانات يكون ListView في:

private Literal litControlTitle;

protected void litControlTitle_Init(object sender, EventArgs e)
{
    litControlTitle = (Literal) sender;
}

protected void lv_DataBound(object sender, EventArgs e)
{
    litControlTitle.Text = "Title...";
}

لمتداخلة LV حلقة:

void lvSecondLevel_LayoutCreated(object sender, EventArgs e)
{
    Literal litText = lvFirstLevel.FindControl("lvSecondLevel").FindControl("litText") as Literal;
    litMainMenuText.Text = "This is test";
}

في حال كنت في حاجة إلى إصدار VB، ومن هنا

Dim litControl = CType(lv.FindControl("litControlTitle"), Literal)
litControl.Text = "your text"
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top