我在百度里搜了一下,用System.Convert.ToInt32可以解决问题,但是不知道在下面的程序里怎么用。大家帮忙看一下
    void PagerButtonClick(Object sender, EventArgs e)
    {
        //获得LinkButton的参数值
        String arg = ((LinkButton)sender).CommandArgument;        switch (arg)
        {
            case ("next"):
                if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1))
                    MyDataGrid.CurrentPageIndex++;
                break;
            case ("prev"):
                if (MyDataGrid.CurrentPageIndex > 0)
                    MyDataGrid.CurrentPageIndex--;
                break;
            case ("last"):
                MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1);
                break;
            default:
                //本页值
                MyDataGrid.CurrentPageIndex = arg.ToInt32();
                break;
        }
        BindGrid();
    }

解决方案 »

  1.   

    MyDataGrid.CurrentPageIndex = int.Parse(arg);
      

  2.   

    一眼就看到这句有问题:
    MyDataGrid.CurrentPageIndex = arg.ToInt32();
    应该是这样:
    MyDataGrid.CurrentPageIndex = Convert.ToInt43(arg);
      

  3.   

    sorry, 应该是ToInt32(),键盘按错了。
    另外,这种转化最好是用Int.TryParse(arg, MyDataGrid.CurrentPageIndex),这样如果arg不能转化,会返回false,你可以不用再去try,catch
      

  4.   

    //本页值
    MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
      

  5.   

    MyDataGrid.CurrentPageIndex = int.Parse(arg);MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
      

  6.   

    MyDataGrid.CurrentPageIndex = arg.ToInt32();
    改为:MyDataGrid.CurrentPageIndex = int.Parse(arg);
    or
    MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
      

  7.   

    MyDataGrid.CurrentPageIndex = arg.ToInt32();
    ==============================================
    MyDataGrid.CurrentPageIndex = Convert.ToInt32(arg);
      

  8.   

    大家的方法都对,谢谢大家了。我也是从网上找来的程序研究,问题又来了,这个问题解决,马上结贴给分。
    报错:
    “ASP.printbower2_aspx.MyDataGrid_Page(object, System.Web.UI.WebControls.DataGridPageChangedEventArgs)”是一个“方法”,这在给定的上下文中无效源错误: 行 60:     void BindGrid()
    行 61:     {
    行 62:         MyDataGrid_Page.DataSource = CreateDataSource();
    行 63:         MyDataGrid_Page.DataBind();
    行 64:         ShowStats();
     
    他的CreateDataSource是这样写的:
        ICollection CreateDataSource()
        {
            string strConnection = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("local.mdb") + ";";
            string strSQL = "SELECT * FROM MOBILE_CALL_TICKET_ZRY";
            OleDbConnection MyConnection = new OleDbConnection(strConnection);
            OleDbDataAdapter MyDataSetCommand = new OleDbDataAdapter(strSQL, MyConnection);
            DataSet ds = new DataSet();
            MyDataSetCommand.Fill(ds, "admin_enter");
            return ds.Tables["admin_enter"].DefaultView;
         }
    我不明白为什么在上下文中无效,请大家指教。
      

  9.   

    补充一下,上面的CreateDataSource()是我改过的,他用的是SQL,我要用Access,可能是我改错吧,但我不知道错在哪,他原来的程序是这样的
    ICollection CreateDataSource()
    {
    /*
    读取数据库的信息,获得DataView
    */
    SQLConnection MyConnection = new SQLConnection("server=localhost;uid=sa;pwd=123456;database=aspcn");
    SQLDataSetCommand MyDataSetCommand = new SQLDataSetCommand("select * from admin_enter order by Enter_Time desc",MyConnection);
    DataSet ds= new DataSet();
    MyDataSetCommand.FillDataSet(ds,"admin_enter");
    return ds.Tables["admin_enter"].DefaultView;
    }
      

  10.   

    这个错误和你的CreateDataSource()无关,你看一下你的DataGrid“属性”-》“方法”里PageIndexChanged有没有对应上,我觉得是控件的响应事件句柄没有对应上。
      

  11.   

    MyDataGrid_Page.DataSource = CreateDataSource();
    ------------------------------------------------
    MyDataGrid_Page这是一个事件处理函数把
    MyDataGrid.DataSource = CreateDataSource();
    MyDataGrid.DataBind();