<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
        <Columns>
            <asp:TemplateField HeaderText="文本">
                <ItemTemplate>
                    <%# Eval("id") %>
                    -
                    <%# Eval("name") %>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:LinkButton ID="LinkButton1" runat="server" OnClientClick='<%# "showModal("+Eval("id")+")" %>'
                        Text="打开"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </asp:GridView>
    <script>
        function showModal(id) {
            window.showModalDialog('Default2.aspx?id=' + id, null, 'dialogWidth:1000px; dialogheight:500px');
        }
    </script>protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("id", typeof(int)));
        dt.Columns.Add(new DataColumn("name", typeof(string)));        DataRow dr = dt.NewRow();
        dr[0] = "aa";
        dr[1] = "a";
        dt.Rows.Add(dr);        dr = dt.NewRow();
        dr[0] = "bb";
        dr[1] = "b";
        dt.Rows.Add(dr);        dr = dt.NewRow();
        dr[0] = "cc";
        dr[1] = "c";
        dt.Rows.Add(dr);        GridView1.DataSource = dt;
        GridView1.DataBind();
    }OnClientClick='<%# "showModal("+Eval("id")+")" %>'是不是 只能  in32的?
我本来是读取数据库里 的aa-0001的
但发现不行 

解决方案 »

  1.   

            dt.Columns.Add(new DataColumn("id", typeof(string)));
    已经改了的
    但提示 Microsoft JScript 运行时错误: 'aa' 未定义
    <a onclick="showModal(aa);" 
      

  2.   

    既然只是打开的话那换成a标签还比较方便点。
    <ItemTemplate>
                        <a onclick="showModal('<%#Eval("id") %>')">打开</a>
                    </ItemTemplate>
      

  3.   

    try it!<asp:LinkButton ID="LinkButton1" runat="server" CommandArgument='<%#Eval("id")%>' Text="打开" OnCommand="LinkButton1_Command">
    </asp:LinkButton>public void LinkButton1_Command(object sender, CommandEventArgs e)
    {
            string index = e.CommandArgument.ToString().Trim();
            Page.ClientScript.RegisterStartupScript(this.GetType(), "", "showModal(" + index + ")", true);
    }
      

  4.   

    这样都行
    理事先生,你每次总是出现的那么晚
    不能以LINKBUTTON  行为出现?
    视觉上 还是简单了一点噢  不是常规的  一看到 就有LINK了  
    再不然就加下划线?  
      

  5.   

    这里没必要弄个服务器控件,弄个标签a就够了。
                <asp:TemplateField>
                    <ItemTemplate>
                        <a style="text-decoration:underline;cursor:pointer;color:Blue" onclick="showModal('<%#Eval("id") %>')">打开</a>
                    </ItemTemplate>
                </asp:TemplateField>
      

  6.   


    Microsoft JScript 运行时错误: 'et' 未定义     
    et   是获取的字符串