asp.net - 将 BoundField 提取到标签

标签 asp.net webforms data-access-layer detailsview

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

这可能吗?如果是这样,怎么办?

这是详细信息 View 的摘要:

<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")

最佳答案

我不会尝试在 DetailsView 上查找文本,而是在 DataSource 中查找文本。您可以使用 DataBound 事件,该事件在 DetailsView 进行数据绑定(bind)之后触发,因此可以确保 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 实际上是什么。

关于asp.net - 将 BoundField 提取到标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34224232/

相关文章:

jQuery UI 对话框将 ID 传递给弹出窗口

c# - 从客户端 (*) 检测到潜在危险的 Request.Path 值

ruby - 在 Ruby 上设计 DAO

c# - 使用 Lambda 表达式从字段名称中选择不同的字段

asp.net - 如何从 IIS 内部访问 TCP 选项 header ?

c# - Entity Framework - 数据绑定(bind)自定义字段错误(未找到属性)

UI + 逻辑 + DB 查询的 Java 到 C++ 转换

mongodb - NoSQL(Mongo)的面向文档的数据抽象层?

.net - 在 Web.config 中添加程序集时,我可以指定任何版本或范围吗?

asp.net - ScriptManager EnableCdn - 不适用于 SSL