如何将GridView单元格值传递给弹出窗口? [英] how to pass GridView cell value to popup window ?
本文介绍了如何将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屋!
查看全文