GridView响应用户的功能

在网页中浏览数据库数据都会用到GridView控件。有很多种方法可以令GridView控件具有良好的方便的功能,令用户用起来觉得很方便。一个例子:让GridView其中一个字段的值作为连接到另一个网页的超链接。在这里说明一下它的具体实现是怎样的。

 

要完成以上所说的功能首先要知道两个asp.net提供的函数。它就是GridView_RowDataBound(object sender,GridViewRowEventArgs e)。在调用DataBind将数据绑定到GridView的时候,GridView会触发RowDataBound事件。该事件会调用GridView_RowDataBound(object sender,GridViewRowEventArgs e)来处理数据绑定时候的操作。所以实现超链接的操作可以在这个时候加上去。接下来要介绍另一个函数它就是DataBinder中的Eval函数。Eval函数可以很方便的获取绑定数据源中特定字段里面的值。例如:DataBinder.Eval(e.Row.DataItem, "你想获得值的字段").ToString();

 

好现在真是开始实现功能。首先在前台代码上加上GirdView控件。就像下面所示:

<asp:GridView ID="gvView" ...>

          <Columns>

                <asp:BoundField DataField="..." HeaderText="..."/>

                                            ...

                <ItemTemplate>

                         <asp:LinkButton ID="lnkType" runat="server"/>                  //这是用来做链接的关键

                </ItemTemplate>

          </Columns>

</asp:GridView>

 

然后后台代码使用DataBind函数绑定后注意就是编写RowDataBound的逻辑

protected void GridView_RowDataBound(object sender, GridViewRowEventArgs e)

{

        LinkButton objlnkType = null          //这是用于获取前台LinkButton的对象

        string strlnkTypeScript = ""

 

        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            objlnkType = (LinkButton)e.Row.FindControl("lnkType");                   //获取前台LinkButton:lnkType

            strlnkTypeScript = string.Format("DisplayTransaction()");                 //定义客户端javascript

            objlnkType.OnClientClick = strlnkTypeScript;                                     //将Javascript赋予到OnClientClick中

         }

}

这样当浏览网页的时候单击GridView里面的LinkButton就会执行定义好的javascript。只要定义还好javascript就可以达到很多功能。例如以上所说的超链接功能。 

只要更加了解e.Row.RowType其实可以做到更多的东西。例如全行响应用户。做法是利用e.Row.Attributes.Add("OnClick", "定义好的javascript")就可以做到全行响应用户调用相对于的javascript。

posted @ 2013-06-15 11:40  Matrix博客园  阅读(471)  评论(0编辑  收藏  举报