当前位置:编程学习 > C#/ASP.NET >>

ASP.NET GridView中,想要点击单元格,然后弹出新窗口。

求助各位大侠们!!!
谢谢啦!!!!


我的gridview定义是这样子的

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

namespace GridViewCodeBehind
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        GridView gv = new GridView();
        protected void Page_Load(object sender, EventArgs e)
        {

            div1.Controls.Add(gv);
            List<Persons> persons = new List<Persons>();
            gv.AutoGenerateColumns = false;

            BoundField bd3 = new BoundField();
            bd3.DataField = "SEX";                  //列名
            bd3.HeaderText = "Sex";                 //列名显示的名称
            gv.Columns.Add(bd3);

            BoundField bd2 = new BoundField();
            bd2.DataField = "AGE";
            bd2.HeaderText = "Age";
            gv.Columns.Add(bd2);

            BoundField bd1 = new BoundField();
            bd1.DataField = "NAME";
            bd1.HeaderText = "Name";
            gv.Columns.Add(bd1);
string conStr = "Provider=OraOLEDB.Oracle;Data Source=orcl10g;User ID=fact;Password=fact;Unicode=True";
            using (OleDbConnection cn = new OleDbConnection(conStr))
            {
                cn.Open();
                string strSQL = "select * from F_PAT_CLINIC_4 where rownum<21";
                using (OleDbCommand cmd = new OleDbCommand(strSQL, cn))
                {

                    using (OleDbDataReader odr = cmd.ExecuteReader())
                    {
                        
                        int i1 = odr.GetOrdinal("NAME");
                        int i2 = odr.GetOrdinal("AGE");
                        int i3 = odr.GetOrdinal("SEX");
                        

                        while (odr.Read())
                        {


                            Persons person = new Persons();
                            person.Name = odr.GetValue(i1).ToString();
                            person.Age = Convert.ToInt32(odr.GetValue(i2));
                            person.Sex = odr.GetValue(i3).ToString();
                            persons.Add(person);
                        }
                    }
                }
            }
           
            gv.DataSource = persons;
            gv.DataBind();
        }



我想加一个事件,在点击Name的单元格时,可以弹出一个窗口,窗口显示的是Name的ID,
网上搜到的结果都是用JS实现,请问有不用JS实现的办法吗? --------------------编程问答--------------------
引用 楼主 gougou_nearby 的回复:
求助各位大侠们!!!
谢谢啦!!!!


我的gridview定义是这样子的

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

namespace GridViewCodeBehind
{
    public partial class WebForm1 : System.Web.UI.Page
    {
        GridView gv = new GridView();
        protected void Page_Load(object sender, EventArgs e)
        {

            div1.Controls.Add(gv);
            List<Persons> persons = new List<Persons>();
            gv.AutoGenerateColumns = false;

            BoundField bd3 = new BoundField();
            bd3.DataField = "SEX";                  //列名
            bd3.HeaderText = "Sex";                 //列名显示的名称
            gv.Columns.Add(bd3);

            BoundField bd2 = new BoundField();
            bd2.DataField = "AGE";
            bd2.HeaderText = "Age";
            gv.Columns.Add(bd2);

            BoundField bd1 = new BoundField();
            bd1.DataField = "NAME";
            bd1.HeaderText = "Name";
            gv.Columns.Add(bd1);
string conStr = "Provider=OraOLEDB.Oracle;Data Source=orcl10g;User ID=fact;Password=fact;Unicode=True";
            using (OleDbConnection cn = new OleDbConnection(conStr))
            {
                cn.Open();
                string strSQL = "select * from F_PAT_CLINIC_4 where rownum<21";
                using (OleDbCommand cmd = new OleDbCommand(strSQL, cn))
                {

                    using (OleDbDataReader odr = cmd.ExecuteReader())
                    {
                        
                        int i1 = odr.GetOrdinal("NAME");
                        int i2 = odr.GetOrdinal("AGE");
                        int i3 = odr.GetOrdinal("SEX");
                        

                        while (odr.Read())
                        {


                            Persons person = new Persons();
                            person.Name = odr.GetValue(i1).ToString();
                            person.Age = Convert.ToInt32(odr.GetValue(i2));
                            person.Sex = odr.GetValue(i3).ToString();
                            persons.Add(person);
                        }
                    }
                }
            }
           
            gv.DataSource = persons;
            gv.DataBind();
        }



我想加一个事件,在点击Name的单元格时,可以弹出一个窗口,窗口显示的是Name的ID,
网上搜到的结果都是用JS实现,请问有不用JS实现的办法吗?

那你自己封装一个控件。所谓不用js的方式,其实就是你不用亲自写js的方式,你要记住,浏览器可不认识C#,只认识js。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,