【发布时间】:2016-01-17 08:35:36
【问题描述】:
我有一个 Gridview,我在其中放置了两个用于编辑和删除行的链接按钮。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" OnRowCommand="GridView1_RowCommand" Width="631px" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" GridLines="Horizontal" Height="144px" style="text-align: right" AllowPaging="True" OnPageIndexChanging="GridView1_PageIndexChanging">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:LinkButton ID="LinkEdit" runat="server" CommandArgument='<%#Eval("eid") %>'>Edit</asp:LinkButton>
|
<asp:LinkButton ID="LinkDelete" runat="server" CommandArgument='<%#Eval("eid") %>'>Delete</asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
但是当我在那个 Gridview 中添加分页并尝试转到第 2、3... 页时,它给了我错误:-
无法将“System.Web.UI.WebControls.GridView”类型的对象转换为“System.Web.UI.WebControls.LinkButton”类型。
Source Error:
Line 29: {
Line 30: string id = e.CommandArgument.ToString();
Line 31: string cmdText = ((LinkButton)e.CommandSource).Text;
Line 32: if (cmdText.Equals("Edit"))
Line 33: {
实际错误显示在第 31 行:
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
string id = e.CommandArgument.ToString();
string cmdText = ((LinkButton)e.CommandSource).Text;
if (cmdText.Equals("Edit"))
{
Response.Redirect("Emp_Edit.aspx?id=" + id);
}
else
{
Class1.EmpDelete(id);
Response.Redirect("Emp_Reg.aspx");
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
ShowAll();
}
public void ShowAll()
{
GridView1.DataSource = Class1.ShowData();
GridView1.DataBind();
}
【问题讨论】:
-
请同时提供
ShowAll();功能以便更好地审核。 -
ShowAll();是绑定网格的公共方法。
-
e.CommandSource 中断时的值是多少。在 GridView1_RowCommand 上放置一个调试点并重现错误。
标签: c# asp.net gridview paging