我有一个带有多个列表框的表单:
<asp:ListBox ID="lstAction" runat="server" Rows="3" SelectionMode="Multiple"></asp:ListBox>
我有一个存储过程从objectdatasource获取数据,当一个值传递时,它可以正常工作
<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>
但是当用户选择多个选项时,我已经从选择中构建了一个字符串,该字符串会传递到存储过程中,例如(&#39; a&#39;,&#39; b&#39;,&#39; C&#39)。 如何从strAction获取值以传递给我的select参数?
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);
答案 0 :(得分:0)
string strYourIDs = "";
int[] yourSelectedIndexes = ListBox.GetSelectedIndices();
for (int i = yourSelectedIndexes.Length - 1; i >= 0; i--)
{
strYourIDs += ListBox.Items[yourSelectedIndexes[i]].Value + ",";
}
if (strYourIDs != "")
strYourIDs = strYourIDs.TrimEnd(",".ToCharArray());
从列表框中抓取选定的索引然后循环并将它们添加到逗号分隔的strYourIDs中。然后切断字符串末尾的最后一个逗号。现在,如果使用值1,2和3选择了三个项目,则字符串看起来像&#34; 1,2,3&#34;。您可以通过创建拆分字符串函数或拆分这些值的东西在SQL中使用该字符串,您可以随意使用它们。