急急急..在线等......asp.net中的事件问题?

lxwccxt 2010-10-09 11:06:26
//第一个GridView事件
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//鼠标经过时,行背景色变
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA';this.style.cursor='hand'");
//鼠标移出时,行背景色变
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

//获取部门代码编号以便传入Bmwh_AddBm.aspx页面进行更新
string xmmc = (e.Row.FindControl("Label1") as Label).Text;

//双击GridView某一行进行修改事件 ?ID=" & gid & "'根据要修改的编号对应信息传入Bmwh_AddBm.aspx部门添加和更新所属的同一页面,根据是否传入值进行判断是否是添加还是更新
e.Row.Attributes.Add("ondblclick", "window.location='../../RSGL/RSZL/Rsgl_Zdyxm.aspx?mc=" + xmmc + "'");
}
}
catch
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('程序有误!');</script>");
}
}


//第二个GridView事件
protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
try
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
//鼠标经过时,行背景色变
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#E6F5FA';this.style.cursor='hand'");
//鼠标移出时,行背景色变
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='#FFFFFF'");

//获取部门代码编号以便传入Bmwh_AddBm.aspx页面进行更新
string xmmc = (e.Row.FindControl("Label1") as Label).Text;

//双击GridView某一行进行修改事件 ?ID=" & gid & "'根据要修改的编号对应信息传入Bmwh_AddBm.aspx部门添加和更新所属的同一页面,根据是否传入值进行判断是否是添加还是更新
e.Row.Attributes.Add("ondblclick", "window.location='../../RSGL/RSZL/Rsgl_Zdyxm.aspx?mc=" + xmmc + "'");
}
}
catch
{
Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('程序有误!');</script>");
}
}

正常情况下,是执行了GridView1,紧接着执行GridView2.但是我现在要实现,执行GridView就不执行GridView2,执行GridView2就不执行GridView1.要怎么判断?我一开始在load事件里写了一个判断,但不知道GridView_RowDataBound(?,?)里面的两个参数写什么?

请各位高手指教啊......先谢谢大家了
...全文
177 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
你我他 2011-05-29
  • 打赏
  • 举报
回复
路过呀!
lxwccxt 2010-10-12
  • 打赏
  • 举报
回复
顶下...谢谢各位大侠..帮帮忙...感激不尽...
lxwccxt 2010-10-09
  • 打赏
  • 举报
回复
CSDN这么多高手,难道都没人能解决?
lxwccxt 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 rock870210 的回复:]
还有一点,既然跟1有关联,那刚开始的时候就不要设置2的datasource属性,这样2一开始就不会加载了。
然后1中点击后就直接去获取2的数据源
2.DataSource=**Bll.GetList。。。。。。
2.DataBind();
这样就行了。
[/Quote]
我是在load里这样做的:
string xmmc = Request.QueryString["mc"].ToString();//获取gv1的参数 string sql = "select S_SJXM,S_XMDM,S_XMMC,L_XMLX,L_XSWS,S_MRZ from RS_USERXM where S_XMMC='" + xmmc + "'";
DataTable dt = DBHelp.RunSQLReturnDT(sql);
if (dt.Rows.Count > 0)
{
//根据上级名称查询,看是否存在上级名称与项目名称相同的数据
string sql1 = "select S_SJXM,S_XMDM,S_XMMC,L_XMLX,L_XSWS,S_MRZ from RS_USERXM where S_SJXM='" + xmmc + "'";
DataTable dsql = DBHelp.RunSQLReturnDT(sql1);
//如果数量大于0,说明存在
if (dsql.Rows.Count > 0)
{
DataTable dt1 = new DataTable();
DataRow dr;
dt1.Columns.Add("项目");
dt1.Columns.Add("类型");
dt1.Columns.Add("小数位数");
dt1.Columns.Add("默认值");
dr = dt1.NewRow();
txtXmmc.Text = xmmc;
dr[0] = dsql.Rows[0]["S_XMMC"].ToString();//项目名称
if (dsql.Rows[0]["L_XMLX"].ToString() == "0") //项目类型
{
dr[1] = "文本型";
}
if (dsql.Rows[0]["L_XMLX"].ToString() == "1")
{
dr[1] = "数字型";
}
if (dsql.Rows[0]["L_XMLX"].ToString() == "2")
{
dr[1] = "日期型";
}
dr[2] = dsql.Rows[0]["L_XSWS"].ToString();//小数位数
dr[3] = dsql.Rows[0]["S_MRZ"].ToString();//默认值
dt1.Rows.Add(dr);
DataView dv = new DataView(dt1);
this.GdvXjxm.DataSource = dv.Table;
this.GdvXjxm.DataBind();
cbxSzxjxm.Checked = true;
cbxSzxjxmIsNotChecked();
}
else
{
txtXmmc.Text = dt.Rows[0]["S_XMMC"].ToString();//项目名称
lstXmlx.SelectedValue = dt.Rows[0]["L_XMLX"].ToString();//项目类型
txtXsws.Text = dt.Rows[0]["L_XSWS"].ToString();//小数位数
txtMrz.Text = dt.Rows[0]["S_MRZ"].ToString();//默认值
cbxSzxjxm.Checked = false;
cbxSzxjxmIsNotChecked();
}

}

既然xmmc不为空, 那说明参数传过来了,也表明,点击gv1的事件肯定执行了,我的确是gv1的事件执行了以后才给gv2赋的值..思维应该是对的吧?
lxwccxt 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 rock870210 的回复:]
你当初又没说Girdview2跟1有关联。。。。
那就声明个变量,保存GRIDVIEW1中点击后要获取的数据,然后在2中判断是否存在该数据,有就加载,没有就return
[/Quote]

是我的问题,一开始没说清楚.
我这样判断过了,但还是有问题.这是我gv2的部分代码: string xjmc = "";
if (GdvXjxm.Rows.Count > 0)
{
for (int i = 0; i < GdvXjxm.Rows.Count; i++)
{
xjmc = GdvXjxm.Rows[i].Cells[0].Text;
}
}
//双击GridView某一行进行修改事件 ?ID=" & gid & "'根据要修改的编号对应信息传入Bmwh_AddBm.aspx部门添加和更新所属的同一页面,根据是否传入值进行判断是否是添加还是更新
e.Row.Attributes.Add("ondblclick", "window.location='../../RSGL/RSZL/Rsgl_Zdyxm.aspx?xjmc=" + xjmc + "'");
我现在的问题是,我不想点击gv1的时候还执行gv2的事件...
Rock870210 2010-10-09
  • 打赏
  • 举报
回复
还有一点,既然跟1有关联,那刚开始的时候就不要设置2的datasource属性,这样2一开始就不会加载了。
然后1中点击后就直接去获取2的数据源
2.DataSource=**Bll.GetList。。。。。。
2.DataBind();
这样就行了。
Rock870210 2010-10-09
  • 打赏
  • 举报
回复
你当初又没说Girdview2跟1有关联。。。。
那就声明个变量,保存GRIDVIEW1中点击后要获取的数据,然后在2中判断是否存在该数据,有就加载,没有就return
lxwccxt 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lxwccxt 的回复:]
引用 4 楼 rock870210 的回复:
那就直接声明一个变量,保存当前已经执行了什么,比如String gvFlag = "";
在GridView1中加入:
if(gvFlag=="gv2")
return;
else
gvFlag="gv1";

GridView2中加入:
if(fvFlag=="gv1")
return;
else
fvFlag=="gv2";……
[/Quote]

现在是我点击GridView的时候会执行GridView2的事件.但GridView2的双击事件根本不起作用
lxwccxt 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 rock870210 的回复:]
那就直接声明一个变量,保存当前已经执行了什么,比如String gvFlag = "";
在GridView1中加入:
if(gvFlag=="gv2")
return;
else
gvFlag="gv1";

GridView2中加入:
if(fvFlag=="gv1")
return;
else
fvFlag=="gv2";

两个都放在RowDataBind事件开始……
[/Quote]

不行呢...
总是执行if(fvFlag=="gv1")
return;这一步.我的GridView2里面的数据是根据点击GridView1的数据查询出来的.
也就是说,只有点击了GridView1以后才会执行GridView2的事件.可是现在还是跟原来一样.
就是说好像没有经过那个GridView1的点击事件....我现在思绪比较乱..
Rock870210 2010-10-09
  • 打赏
  • 举报
回复
那就直接声明一个变量,保存当前已经执行了什么,比如String gvFlag = "";
在GridView1中加入:
if(gvFlag=="gv2")
return;
else
gvFlag="gv1";

GridView2中加入:
if(fvFlag=="gv1")
return;
else
fvFlag=="gv2";

两个都放在RowDataBind事件开始的地方即可。想更改回gvFlag="";可以在
e.Row.RowType == DataControlRowType.Foot判断中加入
wjxluck 2010-10-09
  • 打赏
  • 举报
回复
你用一个bool型变量标志
在protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
事件里 赋值
每次执行前进行判断
酷儿 2010-10-09
  • 打赏
  • 举报
回复
你就实现光棒效果还有一个事件 手写代码也一样的
酷儿 2010-10-09
  • 打赏
  • 举报
回复
这样的话只能用iframe来嵌套了 只是感觉你这样写太那个了 如果手写代码用div+全局变量 再用<%%>来控制就好写的多的
lxwccxt 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 cuipinggui 的回复:]
写个ALERT测试一下
[/Quote]
JS?
还是直接后台alert?
cuipinggui 2010-10-09
  • 打赏
  • 举报
回复
写个ALERT测试一下
lxwccxt 2010-10-09
  • 打赏
  • 举报
回复
为什么我双击GridView2不执行方法?哪位大侠可以说说呀?
神码浮云 2010-10-09
  • 打赏
  • 举报
回复
过来看一下..

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧