Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 我的复读器没有显示文本,我是否遗漏了什么?_C#_Asp.net_Repeater - Fatal编程技术网

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;
    }
}