如何将GridView单元格值传递给弹出窗口? [英] how to pass GridView cell value to popup window ?

查看:79
本文介绍了如何将GridView单元格值传递给弹出窗口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何将GridView单元格值传递给弹出窗口?



我正在尝试这样的东西,但它不成功...



Hi, how to pass GridView cell value to popup window ?

I am trying something like this but it is not successfull...

       <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript">
        function popwin(id) {
            var nw = window.open("", "window", "width=200,height=300,scrollbar=yes");
            nw.location.href = "Default.aspx?id " + id;
            nw = null;
            return false;
        }
        
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <div>
            <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"

                Width="215px" onrowdatabound="GridView1_RowDataBound">
                <Columns>
                    <asp:BoundField DataField="UserName" HeaderText="Name" />
                    <asp:TemplateField ShowHeader="False">
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False"

                                Text="Detail"></asp:LinkButton>                            
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
        </div>
    </div>
    </form>
</body>
</html>



















     using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Configuration;
using System.Data;

public partial class _Default : System.Web.UI.Page
{    
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            using (SqlConnection conn = new SqlConnection())
            {
                conn.ConnectionString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
                using (SqlCommand cmd = new SqlCommand())
                {
                    string cmdText = "Select * from login";
                    DataTable dt = new DataTable();
                    cmd.CommandText = cmdText;
                    cmd.Connection = conn;
                    SqlDataAdapter da = new SqlDataAdapter(cmd);
                    conn.Open();
                    da.Fill(dt);

                    GridView1.DataSource = dt;
                    GridView1.DataBind();

                     conn.Close();
                }
            }
            
        }
    }

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton link = e.Row.FindControl("LinkButton1") as LinkButton;
            string id = link.Text;
            link.Attributes["onclick"] = "return popwin(" + id + ")";
        }
    }
}

推荐答案

No change to the aspx UI page. I just modified the code behind page. Please have look in the RowDataBound method.




using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Demo : System.Web.UI.Page
{
    List<user> userList = new List<user>();
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            userList.Add(new User() { UserName = "Alex" });
            userList.Add(new User() { UserName = "Bob" });
            userList.Add(new User() { UserName = "Jeniffer" });
            GridView1.DataSource = userList;
            GridView1.DataBind();
        }

    }

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            LinkButton link = e.Row.FindControl("LinkButton1") as LinkButton;
            string name = e.Row.Cells[0].Text;
            link.Attributes["onclick"] = "return popwin('" + name + "')";
        }
    }
}

public class User
{
    public string UserName  { get; set; }
}


这篇关于如何将GridView单元格值传递给弹出窗口?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆