C# 我的复读器没有显示文本,我是否遗漏了什么?
我有一个中继器和一个按钮 这是中继器:C# 我的复读器没有显示文本,我是否遗漏了什么?,c#,asp.net,repeater,C#,Asp.net,Repeater,我有一个中继器和一个按钮 这是中继器: <asp:Repeater runat="server" ID="rptBreadCrumb" > <ItemTemplate> <div> <asp:LinkButton CssClass="process-breadcrumb" ID="lnkBrdCrmb" runat="server" OnCommand="lnkWeb_Click" />
<asp:Repeater runat="server" ID="rptBreadCrumb" >
<ItemTemplate>
<div>
<asp:LinkButton CssClass="process-breadcrumb" ID="lnkBrdCrmb" runat="server" OnCommand="lnkWeb_Click" />
</div>
</ItemTemplate>
</asp:Repeater>
下面是代码隐藏代码:
var items = new List<object> {};
var urlList = weburl.ParseUrl();
foreach (var url in urlList)
{
using (var site = new SPSite(url))
{
using (var selectedWeb = site.OpenWeb())
{
items.Add(new { Text = selectedWeb.Title + " > ", Url = url });
}
}
}
rptBreadCrumb.DataSource = items;
rptBreadCrumb.DataBind();
var items=新列表{};
var urlist=weburl.ParseUrl();
foreach(url列表中的变量url)
{
使用(var站点=新SPSite(url))
{
使用(var selectedWeb=site.OpenWeb())
{
添加(新的{Text=selectedWeb.Title+“>”,Url=Url});
}
}
}
rptBreadCrumb.DataSource=项目;
rptBreadCrumb.DataBind();
我错过什么了吗?因为它不显示任何文本。将生成链接按钮,但没有文本。如何确保linkbuttons获得它?您可以使用
中继器
事件来设置url和文本
aspx:
您可以使用Repeaters
ItemDataBound
事件来设置url和文本
aspx:
代码隐藏中的代码在哪里?repeater的Ondatabound()?因为您没有编写任何语句来打印任何文本。。。。。?或者您可能在aspx文件中使用Text=缺少LinkButtonTry的Text属性codebehind中的代码在哪里?repeater的Ondatabound()?因为您没有编写任何语句来打印任何文本。。。。。?或者您可能在您的aspx文件中缺少使用Text=的LinkButtonTry的Text属性谢谢您提供了一个很好的示例,但是在//通过DataBinder.Eval获取匿名类型的属性时,我应该怎么做呢?我不明白:/@Obsivus:没什么,应该按原样工作。这只是我在codebehind中使用DataBinder.Eval
的一个注释,这是非常不寻常的。原因是您使用的是匿名类型作为数据源,我只能通过反射访问该数据源,因此我使用了DataBinder.Eval
。感谢您提供了一个很好的示例,但是我应该怎么做//通过DataBinder.Eval获取匿名类型的属性,我不明白:/@Obsivus:没什么,它应该按原样工作。这只是我在codebehind中使用DataBinder.Eval
的一个注释,这是非常不寻常的。原因是您使用的是匿名类型作为数据源,我只能通过反射来访问它,所以我使用了DataBinder.Eval
。
<asp:Repeater runat="server" ID="rptBreadCrumb" OnItemDataBound="rptBreadCrumb_DataBound" >
...
protected void rptBreadCrumb_DataBound(Object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
LinkButton lnkBrdCrmb = (LinkButton)e.Item.FindControl("lnkBrdCrmb");
// get the anonymous type's properties via DataBinder.Eval
string text = (string)DataBinder.Eval(e.Item.DataItem, "Text");
string url = (string)DataBinder.Eval(e.Item.DataItem, "Url");
lnkBrdCrmb.Text = text;
lnkBrdCrmb.PostBackUrl = url;
}
}