可模拟:<a style="CURSOR:hand" onclick="document.all.btn1.click()">click me!!</a>
<asp:Button ID="btn1" Runat="server" style="DISPLAY:none"></asp:Button>btn1的服务器端click事件:
Response.Write(DateTime.Now.ToShortDateString())试试

解决方案 »

  1.   

    .aspx
    <asp:LinkButton id="LinkButton1" runat="server">LinkButton</asp:LinkButton>
    <INPUT type="button" value="Button" onclick="javascript:document.all('LinkButton1').click();">.cs
    #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.LinkButton1.Click += new System.EventHandler(this.LinkButton1_Click);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    private void LinkButton1_Click(object sender, System.EventArgs e)
    {
    Response.Write("hello");
    }
      

  2.   

    我试着写了一个,发现还是用模拟的比较好:
    .aspx文件:
    <%@ Page language="c#" Codebehind="WebForm2.aspx.cs" AutoEventWireup="false" Inherits="CSDNTEST.WebForm2" %>
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
    <HTML>
    <HEAD>
    <title>WebForm2</title>
    <meta content="Microsoft Visual Studio 7.0" name="GENERATOR">
    <meta content="C#" 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="WebForm2" method="post" runat="server">
    <asp:panel id="Panel1" Runat="server">
    <TABLE>
    <TR>
    <TD>
    <asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False">
    <Columns>
    <asp:TemplateColumn HeaderText="XIAMU">
    <ItemTemplate>
    <asp:Label id="Label1" runat="server">Text</asp:Label>
    <asp:Label id="Label3" runat="server"></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
    <asp:TextBox id="TextBox1" runat="server"></asp:TextBox>
    </EditItemTemplate>
    </asp:TemplateColumn>
    <asp:BoundColumn DataField="ID" HeaderText="ID"></asp:BoundColumn>
    <asp:TemplateColumn HeaderText="选择">
    <ItemTemplate>
    <asp:LinkButton runat="server" Text="选择" CommandName="Select" CausesValidation="false" ID="LinkButton1"></asp:LinkButton>
    </ItemTemplate>
    </asp:TemplateColumn>
    </Columns>
    </asp:datagrid></TD>
    </TR>
    </TABLE>
    </asp:panel>
    </form>
    </body>
    </HTML>
      

  3.   

    .cs文件
    ====
    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    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 CSDNTEST
    {
    /// <summary>
    /// WebForm2 的摘要说明。
    /// </summary>
    public class WebForm2 : System.Web.UI.Page
    {
    protected System.Web.UI.WebControls.Panel Panel1;
    protected System.Web.UI.WebControls.DataGrid DataGrid1;

    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面
    if(!IsPostBack)
    {
    DataTable Dt = new DataTable();
    Dt.Columns.Add("ID",typeof(System.Int32));
    for(int i=0;i<10;i++)
    {
    DataRow Dr = Dt.NewRow();
    Dr[0] = i;
    Dt.Rows.Add(Dr);
    }
    Dt.AcceptChanges();
    DataGrid1.DataSource = Dt;
    DataGrid1.DataBind();

    }
    } #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.DataGrid1.ItemDataBound += new System.Web.UI.WebControls.DataGridItemEventHandler(this.DataGrid1_ItemDataBound);
    this.DataGrid1.SelectedIndexChanged += new System.EventHandler(this.DataGrid1_SelectedIndexChanged);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion private void DataGrid1_SelectedIndexChanged(object sender, System.EventArgs e)
    {
    Response.Write("OK");
    } private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {
    if(e.Item.ItemType==ListItemType.Header)
    e.Item.Cells[2].Style.Add("display","none");
    if(e.Item.ItemType==ListItemType.AlternatingItem||e.Item.ItemType==ListItemType.Item)
    {
    e.Item.Attributes["onclick"] = ""+e.Item.FindControl("LinkButton1").UniqueID.Replace(":","_")+".click();";
    e.Item.Cells[2].Style.Add("display","none");
    }
    }
    }
    }
      

  4.   

    不用用模板列,下面的选择列怎么办呢?
    <asp:DataGrid id="DataGrid1" style="Z-INDEX: 101; LEFT: 16px; POSITION: absolute; TOP: 30px" runat="server" Width="334px" Height="162px">
    <Columns>
    <asp:ButtonColumn Text="选择" CommandName="Select"></asp:ButtonColumn>
    </Columns>
    </asp:DataGrid>
      

  5.   

    我是这么做的,谢谢mmkk的代码:
     Private Sub DataGrid1_ItemDataBound(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemDataBound
            e.Item.Attributes("onclick") = "javascript:__doPostBack('" & e.Item.Parent.Parent.UniqueID.ToString & ":_ctl" & (e.Item.ItemIndex + 2) & ":_ctl0')"
        End Sub