我页面有一个repeat和gridview ,gridview是嵌套在repeat里面的
repeat有个rptRuMen_ItemDataBound事件
gridview有个GridView1_RowDataBound事件,本来要repeat先加载数据在加载gridview,现在老是先执行gridview的
GridView1_RowDataBound事件,这是为什么?能解决吗?
repeat有个rptRuMen_ItemDataBound事件
gridview有个GridView1_RowDataBound事件,本来要repeat先加载数据在加载gridview,现在老是先执行gridview的
GridView1_RowDataBound事件,这是为什么?能解决吗?
解决方案 »
- 关于GridView点选任意位置和checkbox勾选的问题
- System.Security.SecurityException
- 关于网站内容管理
- repeater控件嵌套使用时,怎样捕捉内层repeater的事件
- CSDN帖子发表了,如果写错了,如何更改自己的帖子啊
- 。net 取消对js代码的注释按钮无效
- 权限问题。help
- 请问谁有ASP.NET用ReportViewer生成报表并且最好加入柱图的例子或者教程?
- 求asp.net mvc下显示报表的例子(柱形等等之类的)
- 同时将数据插入几个关联表单的问题?
- 点一下LinkButton下载文件,再点一旁的按钮为什么还是出现下载文件,并且按钮本身的功能失效了。
- 哪位大哥来帮我看看这个问题?急~
你先给Repeater绑定数据源,然后FindControl,找到GridView的时候再给他绑定数据源。
protected void rptRuMen_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Label lbl = e.Item.FindControl("lblID") as Label;
int id = Convert.ToInt32(lbl.Text);
DataSet ds = VirtualHostManager.GetList(" HostTypeId =" + id);
GridView gv = e.Item.FindControl("GridView1") as GridView;
DataTable tb = ds.Tables[0];
if (tb.Rows.Count > 0)
{
gv.DataSource = tb;
gv.DataBind();
}
Session["gv"] = gv;
gv.RowDataBound += new GridViewRowEventHandler(gv_RowDataBound);
}
之前的事件是我把gridview拖出来点击然后再放进去,
现在我把这个gridview事件去掉,自己在外面写了void gv_RowDataBound(object sender, GridViewRowEventArgs e)
但是就关联不进去
{
GridView gridview1 = e.Item.FindControl("GridView1") as GridView;
gridview1.RowDataBound += new GridViewRowEventHandler(gridview1_RowDataBound);
}void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
throw new Exception("The method or operation is not implemented.");
}
红色 顺序 不对哦。 要现添加 gv_rowdatabind 再 来给gv 绑定数据
//MouseEnter
//MouseMove
//MouseHover / MouseDown / MouseWheel
//MouseUp
//MouseLeave
//Depressing a mouse button when the cursor
//is over a control typically raises the
//following series of events from the control:
//MouseDown event.
//Click event.
//MouseClick event.
//MouseUp event.msdn 都有写
你按下面 试试 看看
C# codeprotectedvoid rptRuMen_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
Label lbl= e.Item.FindControl("lblID")as Label;int id= Convert.ToInt32(lbl.Text);
DataSet ds= VirtualHostManager.GetList(" HostTypeId ="+ id);
GridView gv= e.Item.FindControl("GridView1")as GridView;
Session["gv"]= gv;
gv.RowDataBound+=new GridViewRowEventHandler(gv_RowDataBound);
DataTable tb= ds.Tables[0];if (tb.Rows.Count>0)
{
gv.DataSource= tb;
gv.DataBind();
}
}
GridView gv = sender as GridView;
void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
GridView gv = sender as GridView;
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (i == 0)
{
logo = e.Row.Cells[3].Text;
i++;
}
else
{
if (logo == e.Row.Cells[3].Text)//如果这一行与上一行的相等
{
j++;
}
else
{
gv.Rows[i - 1 - j].Cells[3].RowSpan = j + 1;
for (int x = j; x > 0; x--)
{
gv.Rows[i - x].Cells[3].Visible = false;
} j = 0;
logo = e.Row.Cells[3].Text;
}
i++;
} }
if (e.Row.RowType == DataControlRowType.Footer)
{
gv.Rows[i - 1 - j].Cells[3].RowSpan = j + 1;
for (int x = j; x > 0; x--)
{
gv.Rows[i - x].Cells[3].Visible = false;
} j = 0;
logo = e.Row.Cells[3].Text;
}
}
嵌在里面的gridview相同的列要跨行, GridView gv = sender as GridView; gv.Rows.Count为0
还是Repeater 方便灵活些