1

我正在Crystal-ReportGridView. 有GridView三列,其中两列填充了标签中来自数据库的值,第三列有一个 CheckBox,它在检查时将这两列的值作为查询字符串发送到 .cs 页面Crystal-Report。列值由存储过程使用,然后结果显示在Crystal-Report. 现在我的问题是如果用户检查两个CheckBox,那么两列的值都应该Crystal-Report作为数组发送到页面。如何实现这一点

我在GridView页面后面的代码是

  protected void ChkCity_CheckedChanged(object sender, EventArgs e)
    {   
    foreach (GridViewRow row in gdCityDetail.Rows)
        {
 bool ischecked = ((System.Web.UI.WebControls.CheckBox)row.Cells[0].FindControl("CheckBox2")).Checked;
            if (ischecked == true) 
{
int getrow = Convert.ToInt32(e.CommandArgument);
  Label label1 = (Label )gdVilDetail.Rows[getrow].FindControl("label1");
                Label label2= (Label )gdVilDetail.Rows[getrow].FindControl("label2");

                Response.Redirect("~/crystal report/Landowner.aspx?Yojna=" + label1.text + "&Village=" + label2.text);

            }

.cs 页面上的代码Crystal-Report

 private void cityreport()
    {
        SqlCommand Cmd = new SqlCommand("Showvillage", Constr1);
        Cmd.CommandType = CommandType.StoredProcedure;
        Cmd.Parameters.Add("@Yojna_No", Request.QueryString[0]);
        Cmd.Parameters.Add("@Village_Code", Request.QueryString[1]);
        DataSet ds = new DataSet();
4

2 回答 2

2

我认为除了字符串值之外,您不能通过查询字符串传递数组或任何其他对象。相反,您可以使用会话变量。

尝试这个..

在第一页。

//Set
Session["Variable"] = ArrayObj;

在第二页。

//If String[]

string[] arry = (string[])Session["Variable"];

希望能帮助到你..

于 2013-01-05T06:44:10.627 回答
1

检查此链接。链接中有一个代码,它使用数组来发送带有查询字符串的值。我没有尝试过,但可能也可以。

http://www.codeproject.com/Questions/298718/array-in-query-string

于 2013-01-05T06:52:21.920 回答