public void DgPreRender(object sender, System.EventArgs e)
{
   System.Web.UI.WebControls.TableCell tablecell;
   System.Web.UI.WebControls.TableRow tablerow;
   DataGrid grid = (sender as DataGrid);
   if(grid.Controls.Count == 0) return;
   System.Web.UI.WebControls.Table table = (grid.Controls[0] as System.Web.UI.WebControls.Table);
  tablerow = (System.Web.UI.WebControls.TableRow)(table.Controls[table.Controls.Count-1]);
  .....
  LinkButton btnFirst = new LinkButton();
  btnFirst.Text = "首页";
  btnFirst.Attributes.Add("onclick","btnFirst_Click");
  btnFirst.ForeColor=Color.Gray;
  tablecell.Controls.AddAt(0,btnFirst);
  ......
 }上面是我在DataGrid里开发一个控件,来实现DataGrid里首页的跳转,现在是如何来响应这个linkbutton事件。
我在html 里写一段JavaScript程序,如下:
<script language="C#" runat="server"> 
   private void btnFirst_Click(Object sender, EventArgs e) 
     {
DataGrid1.CurrentPageIndex=0;
     }                  
</script>
程序可能有误,因为我对JavaScript 不是很熟,哪位高手可以教教怎样实现这个功能吗?

解决方案 »

  1.   

    <script language="C#" runat="server"> 
       private void btnFirst_Click(Object sender, EventArgs e) 
         {
    DataGrid1.CurrentPageIndex=0;
         }                  
    </script>
    ………………………………
    这一段是javascript程序吗?
      

  2.   

    <script language="C#" runat="server"> 
       private void btnFirst_Click(Object sender, EventArgs e) 
         {
    DataGrid1.CurrentPageIndex=0;
         }                  
    </script>
    楼主怎么说上面的是JavaScript程序呢?怀疑是是否学过C#.
      

  3.   

    btnFirst.Attributes.Add("onclick","btnFirst_Click");
    换成
    btnFirst.Click += new System.EventHandler(btnFirst_Click);
      

  4.   

    private void btnFirst_Click(Object sender, EventArgs e) 
         {
    DataGrid1.CurrentPageIndex=0;
         }      
    这个写在.cs文件里就行了,不用写在html里的
      

  5.   

    C#:
    public void DgPreRender(object sender, System.EventArgs e)
    {
      ……
      btnFirst.Attributes.Add("onclick","return btnFirst_Click()");
      ……
    }Javascript in HTML:
    <script language=javascript>
    <!--
    function btnFirst_Click() {
      ……
    }
    //-->
    </script>
      

  6.   

    不好意思,让合位大哥,大姐见笑了,谢谢大家给我的意见!
    <script language="C#" runat="server"> 
       private void btnFirst_Click(Object sender, EventArgs e) 
         {
    DataGrid1.CurrentPageIndex=0;
         }                  
    </script>
    这个JavaScript是我从.net帮助里自定义开发linkbutton里的一个例子抄下的,只是不怎么去用它。
      

  7.   

    public void DgPreRender(object sender, System.EventArgs e)
    {
      ……
      btnFirst.Attributes.Add("onclick","return btnFirst_Click()");
      ……
    }Javascript in HTML:
    <script language=javascript>
    <!--
    function btnFirst_Click() {
      DataGrid1.CurrentPageIndex=0;
    }
    //-->
    </script>功能没有实现,点击首页时达不到预期效果,而是乱跳的一个页码,哪位还有高见吗?
      

  8.   

    按着这个做就可以了,肯定做的出来的:) DataGridPaging.aspx 
       
      <%@ Page language="c#" EnableViewState = "true" Codebehind="DataGridPaging.aspx.cs" 
       AutoEventWireup="false" Inherits="eMeng.Exam.DataGridPaging.DataGridPaging" %> 
      <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> 
      <HTML> 
      <HEAD> 
      <meta content="Visual Basic 7.0" name="CODE_LANGUAGE"> 
      <meta content="JavaScript" name="vs_defaultClientScript"> 
      <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"> 
      </HEAD> 
      <body MS_POSITIONING="GridLayout"> 
      <form id="Form1" runat="server"> 
      <asp:datagrid id="MyDataGrid" runat="server" AutoGenerateColumns="False" 
       HorizontalAlign="Center" AlternatingItemStyle-BackColor="#eeeeee" 
       HeaderStyle-BackColor="#aaaadd" Font-Size="8pt" Font-Name="Verdana" 
       CellSpacing="0" CellPadding="3" GridLines="Both" BorderWidth="1" 
       BorderColor="black" OnPageIndexChanged="MyDataGrid_Page" PagerStyle-HorizontalAlign="Right" 
       PagerStyle-Mode="NumericPages" PageSize="5" AllowPaging="True"> 
       <AlternatingItemStyle BackColor="#EEEEEE"></AlternatingItemStyle> 
       <HeaderStyle BackColor="#AAAADD" Font-Bold="True" HorizontalAlign="Center"></HeaderStyle> 
       <PagerStyle HorizontalAlign="Right" Mode="NumericPages"></PagerStyle> 
       <Columns> 
       <asp:BoundColumn HeaderText="标题" DataField="Title" HeaderStyle-Width="480px"> 
       </asp:BoundColumn> 
       <asp:BoundColumn HeaderText="发表日期" DataField="CreateDate" DataFormatString="{0:yyyy-MM-dd hh:mm:ss}"> 
       </asp:BoundColumn> 
       </Columns> 
      </asp:datagrid> 
      <p style="FONT-SIZE:9pt" align="center"> 
       <asp:label id="lblPageCount" runat="server"></asp:label>  
       <asp:label id="lblCurrentIndex" runat="server"></asp:label> 
       <asp:linkbutton id="btnFirst" onclick="PagerButtonClick" runat="server" Font-Name="verdana" 
       Font-size="8pt" ForeColor="navy" CommandArgument="0"></asp:linkbutton>  
       <asp:linkbutton id="btnPrev" onclick="PagerButtonClick" runat="server" Font-Name="verdana" 
       Font-size="8pt" ForeColor="navy" CommandArgument="prev"></asp:linkbutton>  
       <asp:linkbutton id="btnNext" onclick="PagerButtonClick" runat="server" Font-Name="verdana" 
       Font-size="8pt" ForeColor="navy" CommandArgument="next"></asp:linkbutton>  
       <asp:linkbutton id="btnLast" onclick="PagerButtonClick" runat="server" Font-Name="verdana" 
       Font-size="8pt" ForeColor="navy" CommandArgument="last"></asp:linkbutton> 
      </p> 
      </form> 
      </body> 
      </HTML> 
       
      DataGridPaging.aspx.cs 
       
      using System; 
      using System.Collections; 
      using System.ComponentModel; 
      using System.Data; 
      using System.Data.OleDb; 
      using System.Drawing; 
      using System.Web; 
      using System.Web.SessionState; 
      using System.Web.UI; 
      using System.Web.UI.WebControls; 
      using System.Web.UI.HtmlControls; 
       
      namespace eMeng.Exam.DataGridPaging 
      { 
      /// <summary> 
      /// DataGridPaging 的摘要说明。 
      /// </summary> 
      public class DataGridPaging : System.Web.UI.Page 
      { 
       protected System.Web.UI.WebControls.DataGrid MyDataGrid; 
       protected System.Web.UI.WebControls.Label lblPageCount; 
       protected System.Web.UI.WebControls.Label lblCurrentIndex; 
       protected System.Web.UI.WebControls.LinkButton btnFirst; 
       protected System.Web.UI.WebControls.LinkButton btnPrev; 
       protected System.Web.UI.WebControls.LinkButton btnNext; 
       protected System.Web.UI.WebControls.LinkButton btnLast; 
       private OleDbConnection cn = new OleDbConnection(); 
       
      private void Page_Load(object sender, System.EventArgs e) 
      { 
       // 在此处放置用户代码以初始化页面 
       btnFirst.Text = "最首页"; 
       btnPrev.Text = "前一页"; 
       btnNext.Text = "下一页"; 
       btnLast.Text = "最后页"; 
       OpenDatabase(); 
       BindGrid(); 
      } 
      private void OpenDatabase() 
      { 
       cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("xxxx.mdb"); 
       cn.Open(); 
      } 
      private void ShowStats() 
      { 
       lblCurrentIndex.Text = "第 " + (MyDataGrid.CurrentPageIndex + 1).ToString() + " 页"; 
       lblPageCount.Text = "总共 " + MyDataGrid.PageCount.ToString() + " 页"; 
      } 
       
      public void PagerButtonClick(object sender, EventArgs e) 
      { 
       string arg = ((LinkButton)sender).CommandArgument.ToString(); 
       switch(arg) 
       { 
       case "next": 
       if (MyDataGrid.CurrentPageIndex < (MyDataGrid.PageCount - 1)) 
       { 
       MyDataGrid.CurrentPageIndex += 1; 
       } 
       break; 
       case "prev": 
       if (MyDataGrid.CurrentPageIndex > 0) 
       { 
       MyDataGrid.CurrentPageIndex -= 1; 
       } 
       break; 
       case "last": 
       MyDataGrid.CurrentPageIndex = (MyDataGrid.PageCount - 1); 
       break; 
       default: 
       MyDataGrid.CurrentPageIndex = System.Convert.ToInt32(arg); 
       break; 
       } 
       BindGrid(); 
       ShowStats(); 
      } 
      public void BindGrid() 
      { 
       OleDbConnection myConnection = cn; 
       DataSet ds = new DataSet(); 
       OleDbDataAdapter adapter = new OleDbDataAdapter("Select Title,CreateDate from Document", myConnection); 
       adapter.Fill(ds, "Document"); 
       MyDataGrid.DataSource = ds.Tables["Document"].DefaultView; 
       MyDataGrid.DataBind(); 
       ShowStats(); 
      } 
      public void MyDataGrid_Page(object sender, DataGridPageChangedEventArgs e) 
      { 
       int startIndex ; 
       startIndex = MyDataGrid.CurrentPageIndex * MyDataGrid.PageSize; 
       MyDataGrid.CurrentPageIndex = e.NewPageIndex; 
       BindGrid(); 
       ShowStats(); 
      } 
       
      #region Web Form Designer generated code 
      override protected void OnInit(EventArgs e) 
      { 
      // 
      // CODEGEN:该调用是 ASP.NET Web 窗体设计器所必需的。 
      // 
      InitializeComponent(); 
      base.OnInit(e); 
      } 
       
      /// <summary> 
      /// 设计器支持所需的方法 - 不要使用代码编辑器修改 
      /// 此方法的内容。 
      /// </summary> 
      private void InitializeComponent() 
      { 
      this.Load += new System.EventHandler(this.Page_Load); 
       
      } 
      #endregion 
      } 
      } 
      

  9.   

    非常谢谢你,这位朋友,但是还是得用我那个方法去做。因为我还有其它用处,而不是只为实现这一个DataGrid首页和末页的跳转。
      

  10.   

    建议去http://dotnet.aspx.cc/学习一下!!
    很经典