vs2005的DataGridview问题,高手请进.
Protected Sub GWErr_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GWErr.RowCommand
End Sub
有一DATAGRIDVIEW,我添加一按钮列,现在想单击按钮,取得当前行某列的数值,传入另一页面.
现在问题是,用上面的方法无法取得当前列.更不能得到数值.
大家帮我想想办法.在线等.
[解决办法]
看了一下msdn里的sample需要在createrow的时候把index加button的commmandargument里面去
这里:
ms-help://MS.MSDN.vAug06.en/cpref16/html/E_System_Web_UI_WebControls_GridView_RowCommand.htm
<%@ Page language= "C# " %>
<script runat= "server ">
void CustomersGridView_RowCommand(Object sender, GridViewCommandEventArgs e)
{
// If multiple buttons are used in a GridView control, use the
// CommandName property to determine which button was clicked.
if(e.CommandName== "Add ")
{
// Convert the row index stored in the CommandArgument
// property to an Integer.
int index = Convert.ToInt32(e.CommandArgument);
// Retrieve the row that contains the button clicked
// by the user from the Rows collection.
GridViewRow row = CustomersGridView.Rows[index];
// Create a new ListItem object for the customer in the row.
ListItem item = new ListItem();
item.Text = Server.HtmlDecode(row.Cells[2].Text);
// If the customer is not already in the ListBox, add the ListItem
// object to the Items collection of the ListBox control.
if (!CustomersListBox.Items.Contains(item))
{
CustomersListBox.Items.Add(item);
}
}
}
void CustomersGridView_RowCreated(Object sender, GridViewRowEventArgs e)
{
// The GridViewCommandEventArgs class does not contain a
// property that indicates which row 's command button was
// clicked. To identify which row 's button was clicked, use
// the button 's CommandArgument property by setting it to the
// row 's index.
if(e.Row.RowType == DataControlRowType.DataRow)
{
// Retrieve the LinkButton control from the first column.
LinkButton addButton = (LinkButton)e.Row.Cells[0].Controls[0];
// Set the LinkButton 's CommandArgument property with the
// row 's index.
addButton.CommandArgument = e.Row.RowIndex.ToString();
}
}
</script>
<html>
<body>
<form runat= "server ">
<h3> GridView RowCommand Example </h3>
<table width= "100% ">
<tr>
<td width= "50% ">
<asp:gridview id= "CustomersGridView "
datasourceid= "CustomersSource "
allowpaging= "true "
autogeneratecolumns= "false "
onrowcommand= "CustomersGridView_RowCommand "
onrowcreated= "CustomersGridView_RowCreated "
runat= "server ">
<columns>
<asp:buttonfield buttontype= "Link "
commandname= "Add "
text= "Add "/>
<asp:boundfield datafield= "CustomerID "
headertext= "Customer ID "/>
<asp:boundfield datafield= "CompanyName "
headertext= "Company Name "/>
<asp:boundfield datafield= "City "
headertext= "City "/>
</columns>
</asp:gridview>
</td>
<td valign= "top " width= "50% ">
Customers: <br/>
<asp:listbox id= "CustomersListBox "
runat= "server "/>
</td>
</tr>
</table>
<!-- This example uses Microsoft SQL Server and connects -->
<!-- to the Northwind sample database. Use an ASP.NET -->
<!-- expression to retrieve the connection string value -->
<!-- from the Web.config file. -->
<asp:sqldatasource id= "CustomersSource "
selectcommand= "Select [CustomerID], [CompanyName], [City] From [Customers] "
connectionstring= " <%$ ConnectionStrings:NorthWindConnectionString%> "
runat= "server "/>
</form>
</body>
</html>