【发布时间】:2014-09-15 16:38:41
【问题描述】:
我有一个带有多列表框的表单:
<asp:ListBox ID="lstAction" runat="server" Rows="3" SelectionMode="Multiple"></asp:ListBox>
我有一个从对象数据源获取数据的存储过程,当传递一个值时它可以正常工作
<asp:ObjectDataSource ID="odsSalesSC" runat="server" OldValuesParameterFormatString="original_{0}" SelectMethod="GetData" TypeName="RapidFire.RFTableAdapters.USP_TOTAL_ORDERCALLSTableAdapter" OnSelecting="odsSalesSC_Selecting">
<SelectParameters>
<asp:ControlParameter ControlID="lstAction" Name="action" PropertyName="SelectedValue" Type="String" ConvertEmptyStringToNull="true" />
</SelectParameters>
</asp:ObjectDataSource>
但是当用户选择多个选项时,我已经从选择中构建了一个字符串,该字符串传递到一个存储过程中,例如 ('a','b','c') 中的某些内容。 如何从 strAction 获取值以传递给我的选择参数?
protected void btnFilter_Click(object sender, EventArgs e)
{
String strAction = String.Empty;
foreach (ListItem liAction in lstAction.Items)
{
if (liAction.Selected)
{
strAction += "'" + liAction.Value + "',";
}
}
strAction = strAction.Substring(0, strAction.Length - 1);
【问题讨论】:
-
请检查 Storedprocedure 它应该在 where 条件中查询 ('a','b') 而不是 = 。如果这解决了您的问题,请告诉我,我会将其添加为答案
标签: c# listbox objectdatasource