2

是否可以使用 Eval?如果是这样,有人可以发布一个简短的片段来说明吗?我的 SqlDataSource 返回包含 3 个字段的 1 条记录,我想将它们格式化为字符串。例如:

记录字段“名称”=“杰克”字段“金额”=100 字段“日期”=12.02.2010

asp:Label 文本最终应该是:

欢迎杰克,最后一次付款是 100 于 2010 年 2 月 12 日

如果除 asp:Label 之外的其他控件是合适的,那也很高兴知道。

4

2 回答 2

2

Label 是您想要显示的正确控件,但 SqlDataSource 可能不是获取数据的正确控件。标签没有允许您将控件关联在一起的 DataSourceID 属性-虽然您可以在服务器端代码中进行一些检查以使其工作,但我怀疑在 Page_Load 期间获取相关 DataRow 会更有效,构建字符串,然后将其放入 Label 的 Text 属性中。

于 2010-05-30T12:54:30.817 回答
1

感谢指导菲尔,这是我的解决方案(错误检查,欢迎批评):

private void DataSourceIntoLabel(Label label,
                                SqlDataSource dataSource,
                                ParameterCollection parameters,
                                string formatString,
                                string[] columnNames)
{
    dataSource.SelectParameters.Clear();
    foreach (System.Web.UI.WebControls.Parameter p in parameters)
    {
        dataSource.SelectParameters.Add(p);
    }
    IEnumerable rows = dataSource.Select(DataSourceSelectArguments.Empty);
    IEnumerator enumerator = rows.GetEnumerator();
    enumerator.MoveNext();
    DataRowView rowView = (DataRowView)enumerator.Current;
    label.Text = string.Format(formatString, rowView.Row.ItemArray);
}
于 2010-05-30T20:54:42.070 回答