asp.Netでgridviewが1行のデータを削除する方法
これは私が一日かけてやっと分かったので、記念に書いてください.
フロントのコード:sqldatasourceが使用されていないことに注意
バックグラウンドのコード:
私が書いたとき、コンパイラはrowとrowindexにこのような命令セットがないことをヒントにして、最後に私のイベントパラメータタイプが間違っていることに気づいて、私はやっとイベントパラメータのタイプが非常に重要であることを発見しました.ここで目を覚まして、みんなが私のような低級な間違いを犯さないことを望んでいます!
フロントのコード: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にこのような命令セットがないことをヒントにして、最後に私のイベントパラメータタイプが間違っていることに気づいて、私はやっとイベントパラメータのタイプが非常に重要であることを発見しました.ここで目を覚まして、みんなが私のような低級な間違いを犯さないことを望んでいます!