الوصول إلى السيطرة داخل وLayoutTemplate من ListView
-
10-07-2019 - |
سؤال
وكيف يمكنني الوصول إلى التحكم في 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"
لا تنتمي إلى StackOverflow