这是我花了一天的时间才搞懂的,写下来纪念一下!
前台的代码:注意没有使用sqldatasource
<asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="6" OnRowDeleting="GridView1_deleting"
AutoGenerateColumns="False" DataKeyNames="用户名" Width="819px">
<Columns>
<asp:BoundField DataField="用户名" HeaderText="用户名" ReadOnly="True"
SortExpression="用户名" />
<asp:BoundField DataField="密码" HeaderText="密码" SortExpression="密码" />
<asp:BoundField DataField="性别" HeaderText="性别" SortExpression="性别" />
<asp:BoundField DataField="出生时间" HeaderText="出生时间" SortExpression="出生时间" />
<asp:BoundField DataField="联系方式" HeaderText="联系方式" SortExpression="联系方式" />
<asp:BoundField DataField="邮箱" HeaderText="邮箱" SortExpression="邮箱" />
<asp:BoundField DataField="密码保护问题" HeaderText="密码保护问题"
SortExpression="密码保护问题" />
<asp:BoundField DataField="密码保护问题回答" HeaderText="密码保护问题回答"
SortExpression="密码保护问题回答" />
<asp:BoundField DataField="注册时间" HeaderText="注册时间" SortExpression="注册时间" />
<asp:TemplateField ShowHeader="true" HeaderText="删除用户">
<ItemTemplate>
<asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete"
Text="删除" OnClientClick='<%# "if (!confirm(\"你确定要删除" + Eval("用户名").ToString() + "吗?\")) return false;"%>'></asp:LinkButton>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
后台的代码:
protected void Page_Load(object sender, EventArgs e)
{
if(!Page.IsPostBack)
{
bind();
}
}
public void bind()
{
SqlConnection conn = new SqlConnection(CommonMethods.connstring);
conn.Open();
string cmd = "select * from userlogin";
SqlDataAdapter da = new SqlDataAdapter(cmd, conn);
DataSet ds = new DataSet();
da.Fill(ds);
GridView1.DataSource = ds;
GridView1.DataBind();
conn.Close();
}
protected void GridView1_deleting(object sender, GridViewDeleteEventArgs e)//注意各种事件的参数类型
{
SqlConnection conn = new SqlConnection(CommonMethods.connstring);
conn.Open();
string deleteuser = GridView1.DataKeys[e.RowIndex].Value.ToString();//获取主键
string cmd = "delete from userlogin where 用户名='" + deleteuser+"'" ;//
SqlCommand cmdt = new SqlCommand(cmd, conn);
try
{
cmdt.ExecuteNonQuery();
Response.Write("<script>alert('删除成功!')</script>");
}
catch
{
return;
}
bind();
conn.Close();
}
我写的时候发现编译器提示我row和rowindex没有这样的指令集,到最后才发现原来是我的事件参数类型写错了,我这才发现事件参数的类型非常的重要。这里提个醒,希望大家别犯想我一样的低级错误!
本文详细介绍了如何在ASP.NET应用程序中利用GridView组件进行数据展示,并通过实例展示了事件处理机制,特别强调了事件参数类型的重要性。文章通过解决实际编译错误,提醒开发者注意事件参数类型的选择,以避免低级错误。
4704

被折叠的 条评论
为什么被折叠?



