.net 代码隐藏中的文字
为什么我无法访问asp.net页面的隐藏代码中的文字.net 代码隐藏中的文字,.net,asp.net,literals,.net,Asp.net,Literals,为什么我无法访问asp.net页面的隐藏代码中的文字 <%@ Page Title="" Language="VB" MasterPageFile="~/UI/Masters/Window.master" AutoEventWireup="false" CodeFile="HelpViewer.aspx.vb" Inherits="UI_Pages_HelpViewer" culture="auto" meta:resourcekey="PageResource1" uiculture="
<%@ Page Title="" Language="VB" MasterPageFile="~/UI/Masters/Window.master" AutoEventWireup="false" CodeFile="HelpViewer.aspx.vb" Inherits="UI_Pages_HelpViewer" culture="auto" meta:resourcekey="PageResource1" uiculture="auto" %>
<asp:Content ID="Content1" ContentPlaceHolderID="c" Runat="Server">
<%--<div dir="rtl">
<asp:Panel ID="Panel1" Height="270px" Width="100%" ScrollBars="Auto"
runat="server" meta:resourcekey="Panel1Resource1">
<asp:Literal ID="Literal1" runat="server" meta:resourceKey="Literal1Resource1"></asp:Literal>
</asp:Panel>
</div>--%>
<div dir="rtl" align="right">
<asp:Repeater ID="rptHelp" runat="server" DataSourceID="xmlHelp">
<ItemTemplate>
<div style ="font-size:12px; font-family :Tahoma; font-weight:bold; margin-left:5px; color:Green; ">
<asp:Literal ID="ltlTitle" runat="server" Text='<%#XPath("title")%>'></asp:Literal>
</div>
<div style="font-size:11px;margin-bottom:10px; margin-left:12px; margin-right:4px; font-family:Tahoma ; margin-top:9px;">
<asp:Literal ID="ltlText" runat="server" Text='<%#XPath("text")%>'></asp:Literal>
</div>
</ItemTemplate>
</asp:Repeater>
<asp:XmlDataSource ID="xmlHelp" runat="server"></asp:XmlDataSource>
</div>
</asp:Content>
ltlText是隐藏代码中的未知元素。ltlText直接未知,因为它位于一个包含控件中:中继器。如果您想访问它,您需要在中继器行上进行迭代,例如在和中,使用FindControl方法查找您的文本 查看MSDN文档中的示例代码: 您要查找的代码可能如下所示:
rptHelp_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
Literal lt = (Literal)e.Item.FindControl("ltlText");
lt.Text = "Test";
}
}
这是因为文字在转发器中。它的多个实例可能是使用您提供的模板创建的,因此仅按名称引用它是行不通的 使用类似于:
Literal ltlText = (Literal)rptHelp.Items[0].FindControl("ltlText");
// Do stuff with literal
很抱歉,现在还没有清醒到可以转换成VB语法的程度,但希望你能理解
您可能希望在中继器工作时执行代码,而不是像这样访问项目,例如在控件的事件处理程序中
更多示例事件处理程序的C#代码:
protected void rptHelp_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
// In this example, the repeater's data source is a DataTable,
// so each item corresponds to a DataRow
DataRow row = e.Item.DataItem as DataRow;
Literal ltlText = (Literal)e.Item.FindControl("ltlText");
// Set literal based on data here
}
}
我在这个网站上的最大问题是我不能使用语法高亮:(。版主总是要编辑我的问题:(@shaahin,若要格式化代码,请选择您的代码段,然后按
Ctrl+K
,或者在每行的开头只留下4个空格。另外,请确保您阅读了此:@shaahin。只需阅读标记语法:。这很容易理解。您是如何尝试访问它的?问题很可能是因为您在一个中继器中。考虑使用FieldCuff.@ SpimION:通过在页面后面的代码中键入文字ID。