是否可以使用Eval?如果是这样,有人可以发一个简短的片段来说明吗?我的SqlDataSource返回带有3个字段的1条记录,我想将它们格式化为字符串。例如:
记录 Field'Name'='杰克' 字段'金额'= 100 Field'Date'= 12.02.2010
asp:标签文本最终应该是:
欢迎杰克,最后一笔付款是100于12.02.2010
如果是另一个控件而不是asp:标签是合适的,那也很好。
答案 0 :(得分:2)
Label是您想要显示的内容的正确控件,但SqlDataSource可能不是获取数据的正确控件。标签没有DataSourceID属性,允许您将控件关联在一起 - 虽然您可以在服务器端代码中进行一些管道以使其工作,但我怀疑在Page_Load期间获取相关DataRow会更有效率,构建字符串,然后将其放入Label的Text属性中。
答案 1 :(得分: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);
}