[英]Trouble with ASP.NET data source parameters
I have a GridView
and I want to add some more parameters to the DataSource. 我有一个
GridView
,我想向数据源添加更多参数。 One of the parameters is called symbols
and is a DataTable
, and I'm not sure how to add it. 其中一个参数称为
symbols
,是一个DataTable
,我不知道如何添加它。 Here's my GridView
: 这是我的
GridView
:
<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>
Here's my current data source. 这是我目前的数据来源。
<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>
I want to pass an extra parameter called symbols
which is a DataTable
. 我想传递一个名为
symbols
的额外参数,它是一个DataTable
。 I populate the DataTable
with this code: 我使用以下代码填充
DataTable
:
DataTable symbols = GetSelectedItems("symbol", listSymbols);
GetSelectedItems
looks like this: 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;
}
I did try and bind the data myself and removing the ObjectDataSource
entirely but then the sorting and paging events weren't handled. 我尝试自己绑定数据并完全删除
ObjectDataSource
但后来没有处理排序和分页事件。 How would you solve this little issue? 你会如何解决这个小问题?
Thanks! 谢谢!
You can use xml type (and a simple string SelectParameter) instead of DataTable: 您可以使用xml类型(和简单的字符串SelectParameter)代替DataTable:
XElement x = new XElement("root",
from i in _listbox.Items.OfType<ListItem>()
where i.Selected
select new XElement("row", i.Value));
string s = x.ToString();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.