【发布时间】:2010-02-11 12:08:41
【问题描述】:
我需要对填充有SqlDataSource 的GridView 进行LINQ 查询 - 以从行创建字典。
所以我有:
<asp:GridView runat="server" ID="gridCurrency" DataSourceID="sourceCurrency" OnDataBound="gridCurrency_DataBound"
<asp:SqlDataSource runat="server" ID="sourceCurrency" ConnectionString="<%$ ConnectionStrings:MyConnStr %>" SelectCommand="[getCurrencies]" SelectCommandType="StoredProcedure" />
和
protected void gridCurrency_DataBound(object sender, EventArgs e)
{
var dic = (from row in ((DataView)sourceCurrency.Select(DataSourceSelectArguments.Empty)).Table.AsEnumerable()
select new
{
ID = (byte)row["ID"],
CurrencyName = (string)row["name"]
}).ToDictionary(k => k.ID, k => k.CurrencyName);
}
在没有GridView.DataSouce 的情况下,有没有比我更好的方法从GridView 获得DataTable。
【问题讨论】:
-
我不再使用 SqlDataSource,但是当我使用的时候,我需要在我的代码隐藏中获取一个 DataTable,我就是这样做的。
-
@Byron Sommardahl:谢谢!你现在用什么?
-
好吧,为了获得更多控制权并正确测试,我将服务器控件从代码隐藏绑定到数据集。我将通过示例发布答案。
标签: .net asp.net linq gridview