传个参数(SelectIndex)过去,回来的时候带着回来就可以了!这些页面值转换的时候这个参数一直带着!

解决方案 »

  1.   

    哦哦,处理完后你原来传递的值在传回来
    设置datagrid.selectedindex
      

  2.   

    可用session在页面间传值,Session["abc"]=abc
      

  3.   

    a.aspx、b.aspx
    在a.aspx里面使用模版列:
    <asp:DataGrid id="YourID" runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn HeaderText="Sample Column">
      <ItemTemplate>
        <asp:Hyperlink runat="server" Text='<%#Container.DataItem("TextVal")%>' NavigateUrl='<%# "a.aspx?proID=" & Server.UrlEncode(Container.DataItem("proID")) & "&SelectIndex=" & Server.UrlEncode(Container.DataItem("SelectIndex"))%>'/>
      </ItemTemplate>
    </asp:TemplateColumn></Columns>
    在b.aspx里面的返回按钮里面
    response.redirect("a.aspx?SelectIndex="+this.Request["SelectIndex"])
    在a.aspx的page_load里面邦定以后再设置SelectIndex!
      

  4.   

    上面Container.DataItem("SelectIndex"))替换成:
    DataBinder.Eval(Container, "ItemIndex", "{0}")
      

  5.   

    我给你。我找的一个我已经使用过了可以的代码如下:
    在Global.asax
    protected void Session_Start(Object sender, EventArgs e)
    {
    bool[] checks=new bool[10000];
    for (int i=0;i<10000;i++)
    {
    checks[i]=false;
    }
               Session.Add("CheckBoxchecks", checks);
    }webform1
    public void BindGrid()
    {
    string strSql ="SELECT * FROM Products ";
    SqlDataAdapter myCommand = new SqlDataAdapter(strSql, myConnection);
    DataSet ds = new DataSet();
    myCommand.Fill(ds, "Products");
    MyDataGrid.DataSource=ds.Tables[0].DefaultView;
    MyDataGrid.DataBind();  
    ShowStatsPage();
    }
     
    private void PagerButtonClick(object sender, System.EventArgs e)
    {
    //获得LinkButton的参数值
    String arg = ((LinkButton)sender).CommandArgument;
              
    switch(arg)
    {
    case ("next"):
    if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
    {
    SaveCheckState();
    MyDataGrid.CurrentPageIndex ++;
    }
    break;
    case ("prev"):
    if (MyDataGrid.CurrentPageIndex > 0)
    {
    SaveCheckState();
    MyDataGrid.CurrentPageIndex --;
    }
    break;
    case ("fist"):
    SaveCheckState();
    MyDataGrid.CurrentPageIndex=0;
    break;
    case ("last"):
    SaveCheckState();
    MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
    break;
    default:
    //本页值
    MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
    break;
    }
    BindGrid();
    DisplayCheckState();
    }            
              
    void ShowStatsPage()
    {
    //显示页面信息
    lblCurrentIndex.Text = "[<font color=blue >当前为第:" + ((int)MyDataGrid.CurrentPageIndex+1) + "页</font>]";
    lblPageCount.Text = "[<font color=blue>共:" + MyDataGrid.PageCount + "页</font>]";
    } private void btnGo_Click(object sender, System.EventArgs e)
    {
    //页面直接跳转的代码
    if(txtGoPage.Text.Trim()!="")
    {
    int PageI=Int32.Parse(txtGoPage.Text.Trim())-1;
    if (PageI >=0 && PageI < (MyDataGrid.PageCount))
    MyDataGrid.CurrentPageIndex = PageI ;

    BindGrid();
    } private void SaveCheckState()
    {
    check=(bool[])Session["CheckBoxchecks"];
    for (int i=0;i< this.MyDataGrid.PageSize;i++)
    {
    CheckBox Che=(CheckBox)this.MyDataGrid.Items[i].Cells[0].FindControl("CheckBox1");
    if (Che.Checked)
    {
    check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize +i]=true;
    }
    else
    {
    check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize +i]=false;
    }
    }
    } private void DisplayCheckState()
    {
    for (int j=0;j<MyDataGrid.PageSize;j++)
    {
    CheckBox Che1=(CheckBox)MyDataGrid.Items[j].Cells[0].FindControl("CheckBox1");
    if (check[MyDataGrid.CurrentPageIndex*MyDataGrid.PageSize+j])
    {
    Che1.Checked=true;
    }
    else
    {
    Che1.Checked=false;
    }
    }
    }