如何在asp.net中的GridView的按钮添加事件 [英] How to add events to buttons of GridView in asp.net
问题描述
我在asp.net中有一个搜索页面,用户搜索一本书,结果列在gridview中。我在每个gridview结果列的右侧添加了一个按钮,我想为这些按钮添加一个事件,例如,当用户点击按钮时,该书被借出。下面是它的截图:
以下是我的代码:
<%@ Page Language =C#AutoEventWireup =trueCodeFile =SearchResults.aspx.csInherits =Pages_SearchResults%>
<!DOCTYPE html PUBLIC - // W3C // DTD XHTML 1.0 Transitional // ENhttp://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional。 dtd>
< html xmlns =http://www.w3.org/1999/xhtml>
< head runat =server>
< title>< / title>
< / head>
< body>
< form id =form1runat =server>
< div>
< / div>
< asp:GridView ID =GridView1runat =serverAutoGenerateColumns =False
DataKeyNames =ISBNDataSourceID =SqlDataSource1
onselectedindexchanged =GridView1_SelectedIndexChanged>
< Columns>
< asp:BoundField DataField =TitleHeaderText =TitleSortExpression =Title/>
< asp:BoundField DataField =ISBNHeaderText =ISBNReadOnly =True
SortExpression =ISBN/&
< asp:BoundField DataField =AuthorNameHeaderText =Author Name
SortExpression =AuthorName/>
< asp:BoundField DataField =AuthorlNameHeaderText =Author Last Name
SortExpression =AuthorlName/>
< asp:BoundField DataField =ItemTypeHeaderText =Item Type
SortExpression =ItemType/>
< asp:BoundField DataField =PublishYearHeaderText =Publish Year
SortExpression =PublishYear/>
< asp:ButtonField ButtonType =ButtonCommandName =LoanItemText =Loan Item/>
< / Columns>
< / asp:GridView>
< asp:SqlDataSource ID =SqlDataSource1runat =server
ConnectionString =<%$ ConnectionStrings:ConnectionString%>
SelectCommand =SELECT * FROM [Items] WHERE([Title] LIKE'%'+ @Title +'%')>
< SelectParameters>
< asp:FormParameter FormField =tSearchBoxName =TitleType =String/>
< / SelectParameters>
< / asp:SqlDataSource>
< / form>
< / body>
< / html>
以下是此SearchResults页面的.cs文件:
使用System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
使用System.Web.UI;
using System.Web.UI.WebControls;
public partial class Pages_SearchResults:System.Web.UI.Page
{
protected void Page_Load(object sender,EventArgs e)
{
}
protected void GridView1_SelectedIndexChanged(object sender,EventArgs e)
{
}
}
我添加了以下按钮:点击BUttonField
我的问题是,如何添加事件到那些贷款项目按钮?我阅读了此链接 http://msdn.microsoft.com/en-us/ library / bb498195.aspx 但它并不真正告诉如何添加事件处理程序。我欣赏任何帮助。感谢
解决方案我会做什么,我认为你的示例链接是做的,是添加RowCommand事件到GridView。
当您单击按钮时,RowCommand事件将被触发,CommandName和CommandArgument(它将是一个标识与该按钮相关联的行/记录的ID
要创建处理程序,请参阅下面的注释,或手动执行。在您的网格中:
OnRowCommand =Grid_RowCommand
并在您的代码隐藏:
protected void Grid_RowCommand(object sender,GridViewCommandEventArgs e)
{
}
约定会规定处理程序的名称应为[ControlID] _ [ EventName]所以在我的示例中,我的网格的ID只是
Grid
I have a search page in asp.net, user searches a book and results are listed in a gridview. I added a button to the right of each gridview result column, and i want to add an event to these buttons, for example, when user clicks the button, that book is loaned. Here is a screenshot of it:
Here is my code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="SearchResults.aspx.cs" Inherits="Pages_SearchResults" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> </head> <body> <form id="form1" runat="server"> <div> </div> <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ISBN" DataSourceID="SqlDataSource1" onselectedindexchanged="GridView1_SelectedIndexChanged"> <Columns> <asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" /> <asp:BoundField DataField="ISBN" HeaderText="ISBN" ReadOnly="True" SortExpression="ISBN" /> <asp:BoundField DataField="AuthorName" HeaderText="Author Name" SortExpression="AuthorName" /> <asp:BoundField DataField="AuthorlName" HeaderText="Author Last Name" SortExpression="AuthorlName" /> <asp:BoundField DataField="ItemType" HeaderText="Item Type" SortExpression="ItemType" /> <asp:BoundField DataField="PublishYear" HeaderText="Publish Year" SortExpression="PublishYear" /> <asp:ButtonField ButtonType="Button" CommandName="LoanItem" Text="Loan Item" /> </Columns> </asp:GridView> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>" SelectCommand="SELECT * FROM [Items] WHERE ([Title] LIKE '%' + @Title + '%')"> <SelectParameters> <asp:FormParameter FormField="tSearchBox" Name="Title" Type="String" /> </SelectParameters> </asp:SqlDataSource> </form> </body> </html>
And here is the .cs file of this SearchResults page:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; public partial class Pages_SearchResults : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void GridView1_SelectedIndexChanged(object sender, EventArgs e) { } }
I added the buttons like the following: Clicked on BUttonField
My question is, how can i add an event to those "Loan Item" buttons? I read this link http://msdn.microsoft.com/en-us/library/bb498195.aspx but it does not really tell how the event handler is added. I appreciate any help. Thanks
解决方案What I would do, and what I think your example link is doing, is adding the RowCommand event to the GridView.
When you click a button, the RowCommand event will be fired, and the CommandName and CommandArgument (which would be an ID that identifies the row/record associated with the button that was clicked) for the button are passed to the event handler.
To create the handler, see my comment below, or do it manually. In your grid:
OnRowCommand="Grid_RowCommand"
And in your codebehind:
protected void Grid_RowCommand(object sender, GridViewCommandEventArgs e) { }
Convention would dictate that the name of the handler should be [ControlID]_[EventName] so in my example, the ID of my grid is simply
Grid
这篇关于如何在asp.net中的GridView的按钮添加事件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!