GridView的databound事件实例(c#)

很多新手对GridView的databound事件并不熟悉,今天我就来掩饰一个实例,希望对大家有所帮助!
这是一个给GridView添加绑定效果的例子,使其每一行加上高亮,并添加跳转事件。
首先看一下代码:
 1 protected void gv_TestCombinationList_RowDataBound(object sender, GridViewRowEventArgs e)
 2     {
 3         DataRowView view = e.Row.DataItem as DataRowView;//定义一个DataRowView的实例
 4         if (view != null)
 5         {
 6             e.Row.Attributes.Add("onMouseOver""this.style.color='#ff8105'");
 7             e.Row.Attributes.Add("style""cursor:hand");
 8             e.Row.Attributes.Add("onMouseOut""this.style.color='black'");//添加每一行的属性
 9             for (int i = 0; i < e.Row.Cells.Count; i++)
10             {
11                 string url = rule.GetModulePage(m_ModuleID, ModulePageENUM.TestCombinationDetail) + "?id=" + view["ProjectID"].ToString() + "&testid=" + view["TestID"].ToString();//通过方法得到链接地址
12                 e.Row.Cells[i].Attributes.Add("onclick""self.location='" + url + "'");//添加跳转属性
13             }
14         }
15     }
很简单的一个小例子,只要你的GridView中有数据,上述代码就可以让它们拥有高亮和跳转的效果,希望大家能在此基础上更进一步。
有什么不明白的可以给我留言。
 
阅读更多

关于gridViewdatabound事件

08-09

我在页面中拖入了一个sqldatasource和一个gridView,为gridView设置了datasourceID,然后我后台写代码在grieView的导航去添加一个分页的页码显示,如(目前所在页码(1/3))和一个导航的linkButton按钮。代码如下。。rn[code=C#] protected void Page_Load(object sender, EventArgs e)rn rn if (!IsPostBack)rn rn this.GridView1.Caption = "员工基本信息";rn this.GridView1.PagerSettings.Mode = PagerButtons.NextPreviousFirstLast;rn this.GridView1.PagerSettings.FirstPageImageUrl = "~/First.gif";rn this.GridView1.PagerSettings.LastPageImageUrl = "~/Last.gif";rn this.GridView1.PagerSettings.NextPageImageUrl = "~/Next.gif";rn this.GridView1.PagerSettings.PreviousPageImageUrl = "~/Previous.gif";rn this.GridView1.PageSize = 3;rn rn this.GridView1.DataBind();rn rn protected void GridView1_DataBound(object sender, EventArgs e)rn rn GridViewRow botomRow = this.GridView1.BottomPagerRow;rn Label bottomPagerNo = new Label();rn bottomPagerNo.Text = "目前所在的分页码(" + (GridView1.PageIndex + 1) + "/" + GridView1.PageCount + ")";rn botomRow.Cells[0].Controls.Add(bottomPagerNo);rnrn Literal myLiteral = new Literal();rn myLiteral.Text = " ";rn botomRow.Cells[0].Controls.Add(myLiteral);rnrn for (int i = 0; i < this.GridView1.PageCount; i++)rn rn LinkButton PageNo = new LinkButton();rn PageNo.Text = Convert.ToString(i + 1);rn PageNo.ID = PageNo + i.ToString();rn PageNo.CommandArgument = i.ToString();rn PageNo.Click += new EventHandler(PageNo_Click);rn botomRow.Cells[0].Controls.Add(PageNo);rn Literal bland = new Literal();rn bland.Text = " ";rn botomRow.Cells[0].Controls.Add(bland);rn rn rnrn void PageNo_Click(object sender, EventArgs e)rn rn this.GridView1.PageIndex = Convert.ToInt16(((LinkButton)sender).CommandArgument);rn [/code]rnrn显示的效果为[img=C:\Documents and Settings\Administrator\桌面\1.PNG][/img]rnrn这种情况下。。当我单击下面代码添加的linkButton导航按钮时,可以正确导航分页,这说明每次单击了linkButton后,都执行了GridView1_DataBound事件,但是当我去掉Page_Load事件中的 this.GridView1.DataBind();这条语句后,再运行单击linkButton导航按钮,导航区中的页码显示和linkBUTTON按钮都会消失。。这说明了没有执行 this.GridView1.DataBind();事件。。但是我去单击导航区中的next,previous内置的导航按钮时。。下面的页码显示和linkBUTTON却不会消失。。。rnrn我不明白的是它内置的导航区按钮会自动执行GridView1_DataBound事件,而代码添加进去的导航按钮必须每次页面加载都执行 this.GridView1.DataBind()才会执行GridView1_DataBound事件吗?

换一批

没有更多推荐了,返回首页