将 BoundField 提取到标签

Posted

技术标签:

【中文标题】将 BoundField 提取到标签【英文标题】:Extract a BoundField to a Label 【发布时间】:2016-03-17 09:46:31 【问题描述】:

我有一个 DetailsView,它使用数据访问层和查询字符串可以正常工作。但是,我想提取其中一个字段并将其用作标签中的文本,以在 DetailsView 上方作为该页面的标题。

这可能吗?如果有,怎么做?

这是 DetailsView 的摘要:

<Fields>
    <asp:BoundField DataField="bandname" HeaderText="Band" />
    <asp:BoundField DataField="contactname" HeaderText="Contact" />
    <asp:BoundField DataField="county" HeaderText="County" />
</Fields>

以及背后的代码:

if (Request.QueryString.Count != 0)

    int id = int.Parse(Request.QueryString["bandid"]);
    dtvBand.Visible = true;
    List<Band> bandDetails = new List<Band>  BandDAL.AnonGetAllBandDetails(id) ;

    dtvBand.DataSource = bandDetails;
    dtvBand.DataBind();

我想做的是获取第一个 BoundField 行中的数据并将其设置为标签的文本。伪代码:

Label1.Text = (<asp:BoundField DataField="band")

【问题讨论】:

【参考方案1】:

我不会尝试在 DetailsView 上找到文本,但在 DataSource 中。您可以使用在DetailsView 被数据绑定之后触发的DataBound 事件,因此可以确保DataItem 存在。

这取决于您的DetailsViewDatasource。通常是DataRowView。您必须投射它,然后您才能访问它的列:

protected void DetailsView1_DataBound(Object sender, EventArgs e)

    DetailsView dv = (DetailsView)sender;
    string yourText = (string)((DataRowView)dv.DataItem)["ColumnName"];
    Label1.Text = yourText;

如果不是DataRowView,请使用调试器查看dv.DataItem 实际上是什么。

【讨论】:

【参考方案2】:

我设法实现了我想要的使用:

string titletext = dtvBand.Rows[0].Cells[1].Text.ToString();
            dtvBand.Rows[0].Visible = false;
            lblBand.Text = titletext;

它获取 DetailsView 的第一行,将其放在 Label 中的其余部分之上,以便将其格式化为标题,然后隐藏 DetailsView 的第一行。

【讨论】:

如果有人更改 DetailsView,例如使用 TemplateField 来使用控件,此方法将失败。【参考方案3】:

Tim 提到的使用 TemplateField 怎么样:

<Fields>
    <asp:TemplateField>
        <ItemTemplate>
            <asp:Label ID="lblName" runat="server" Text='<%# Eval("Band") %>' />
        </ItemTemplate>
    </asp:TemplateField>
</Fields>

【讨论】:

以上是关于将 BoundField 提取到标签的主要内容,如果未能解决你的问题,请参考以下文章

如何将html样式标签提取到css中

将 SKProduct 价格提取到 UICollectionView 单元格标签中

使用 taglib# 提取 mp3 标签

ueditor怎么样提取标签的字符串

如何将 CSS 类添加到 BoundField,以便使用 jQuery 找到它?

仅将文本颜色添加到 HTML 上的推文的主题标签