Asp.net 多值参数

Asp.net 多值参数,asp.net,reporting-services,Asp.net,Reporting Services,我正在开发一个web应用程序,它将reporting services报告呈现为PDF格式,我的要求之一是允许在同一报告中包含多个位置。为了解决这个问题,我创建了一个多值报告参数,它在使用RS UI等时似乎起到了一定的作用。但是,我正在使用webservice for reporting services,在我的一生中,我无法确定如何将参数的值设置为具有多个值 我试着简单地将它设置为“LOC1,LOC2”,但这是作为一个单一的值。我还尝试了“LOC1”+System.Environment.Ne

我正在开发一个web应用程序,它将reporting services报告呈现为PDF格式,我的要求之一是允许在同一报告中包含多个位置。为了解决这个问题,我创建了一个多值报告参数,它在使用RS UI等时似乎起到了一定的作用。但是,我正在使用webservice for reporting services,在我的一生中,我无法确定如何将参数的值设置为具有多个值


我试着简单地将它设置为“LOC1,LOC2”,但这是作为一个单一的值。我还尝试了“LOC1”+System.Environment.NewLine+“Loc2”。

如果您愿意在另一端解析它,可以将其作为逗号分隔的字符串发送。很多语言都有一个String.Split(“,”)样式的方法,您可以使用它


或者,您可以构造一个数组(或列表或集合)并将其作为参数传递,尽管这需要更改webservice方法上的约定。

解决了这个问题,您必须将每个值分别放在同一个名称下,snippet:

        //Register parameters
    ArrayList<ParameterValue> parmValues;

    for(Map.Entry<String,String> entry:reportParams.entrySet()) { 
        //is it multi-value?
        if(entry.getValue().contains(",")) {
            //yes, add multiple ParameterValues under the same name 
            //  with each different value
            for(String mval:entry.getValue().split(",")) {
                ParameterValue pv = new ParameterValue();
                pv.setName(entry.getKey());
                pv.setValue(mval.trim());
                parmValues.add(pv);
            }
        } else {
            //no, just a single value
            ParameterValue pv = new ParameterValue();
            pv.setName(entry.getKey());
            pv.setValue(entry.getValue());
            parmValues.add(pv);
        }
    }
//寄存器参数
ArrayList参数值;
对于(Map.Entry:reportParams.entrySet()){
//它是多值的吗?
if(entry.getValue()包含(“,”){
//是,在同一名称下添加多个ParameterValue
//具有不同的值
for(字符串mval:entry.getValue().split(“,”)){
ParameterValue pv=新的ParameterValue();
pv.setName(entry.getKey());
pv.setValue(mval.trim());
parmValues.add(pv);
}
}否则{
//不,只有一个值
ParameterValue pv=新的ParameterValue();
pv.setName(entry.getKey());
pv.setValue(entry.getValue());
parmValues.add(pv);
}
}