我有GridView
,我想添加一些更多的參數到數據源。其中一個參數叫做symbols
,並且是DataTable
,我不確定如何添加它。這裏是我的GridView
:與ASP.NET數據源參數故障
<asp:GridView
ID="grdTrades"
runat="server"
DataKeyNames="tradeId"
DataSource="srcTrades"
EnablePersistedSelection="true"
AllowPaging="true"
AllowSorting="true"
PageSize = "10"
AutoGenerateColumns="false"
>
<Columns>
<asp:BoundField DataField="tradeId" HeaderText="TradeId" SortExpression="tradeId" />
... some more columns ...
</Columns>
</asp:GridView>
這是我目前的數據源。
<asp:ObjectDataSource
id="srcTrades"
TypeName="DatabaseComponent.DBUtil"
SelectMethod="GetTrades"
DeleteMethod="DeleteTrade"
runat="server">
<SelectParameters>
<asp:ControlParameter Name="tradeTypeId" ControlID="ddlTradeTypes" PropertyName="SelectedValue" />
<asp:ControlParameter Name="dateFrom" ControlID="txtDateFrom" PropertyName="Text" />
<asp:ControlParameter Name="dateTo" ControlID="txtDateTo" PropertyName="Text" />
</SelectParameters>
<DeleteParameters>
<asp:ControlParameter Name="tradeId" ControlId="grdTrades" PropertyName="SelectedValue" />
</DeleteParameters>
</asp:ObjectDataSource>
我想通過所謂的symbols
一個額外的參數,它是一個DataTable
。我填充DataTable
與此代碼:
DataTable symbols = GetSelectedItems("symbol", listSymbols);
GetSelectedItems
看起來是這樣的:
private DataTable GetSelectedItems(string column, ListBox _listbox)
{
DataTable items = new DataTable();
items.Columns.Add(column, System.Type.GetType("System.String"));
foreach (ListItem item in _listbox.Items)
{
if (item.Selected)
{
DataRow dr = items.NewRow();
dr[column] = item.Value;
items.Rows.Add(dr);
}
}
return items;
}
我曾嘗試和數據綁定自己,徹底消除了ObjectDataSource
但隨後的排序和分頁活動間沒有沒有處理。你會如何解決這個小問題?
謝謝!
謝謝 - 你能提供一個在Page_Load中用XML填充SelectParameter的例子嗎? – 2010-12-15 12:42:33