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。