2016-08-22 59 views
0

我正在处理一个项目,在该项目中,我将在其中显示,插入,删除我的访问数据库中的数据。我制作了按钮,可以显示数据库中的特定表格。然后我做了一个asp列来显示每行旁边的删除按钮。我想弄清楚的问题是:如何获得它,以便在单击删除按钮时确定了特定行,然后我可以删除它?欢迎提供任何提示或提示。谢谢。C#在gridview中标识行以删除

<body> 
<h1 class="center" style="text-align: center" >Display, Delete, and Add</h1> 
<h3 id="Title1"></h3> 
<style> 
.center{ 
    margin: 0 auto; 
} 

</style> 

<form id="form1" runat="server"> 
    <asp:GridView ID="GridView1" class="center" runat="server" Width="300px" > 
     <Columns> 
      <asp:TemplateField> 
       <ItemTemplate> 
        <asp:Button ID="btn1" Text="Delete" runat="server" OnClick="btn1_Click"/> 
       </ItemTemplate> 
      </asp:TemplateField> 
     </Columns> 
    </asp:GridView> 
    <p> 
     &nbsp;</p> 
    <p > 
     <asp:Button ID="Button1" runat="server" OnClick="Button1_Click1" Text="Courses" /> 
     <asp:Button ID="Button2" runat="server" OnClick="Button2_Click" Text="Student Information" /> 
     <asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="Students" /> 
    </p> 
    <p> 
     &nbsp;</p> 
    <p> 
     &nbsp;</p> 
    <p> 
     &nbsp;</p> 
</form> 

public partial class _Default : System.Web.UI.Page 
{ 
    OleDbConnection con = new OleDbConnection (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\achowdhary\Documents\Database1.accdb"); 
protected void Page_Load(object sender, EventArgs e) 
{ 

} 


protected void Button1_Click1(object sender, EventArgs e) 
{ 


    OleDbDataAdapter ada = new OleDbDataAdapter(" SELECT * FROM COURSES", con); 
    DataSet set = new DataSet(); 
    ada.Fill(set, "COURSES"); 

    DataTable tab = new DataTable(); 
    tab = set.Tables["COURSES"]; 

    GridView1.DataSource = tab; 
    GridView1.DataBind(); 



} 

protected void Button2_Click(object sender, EventArgs e) 
{ 
    OleDbDataAdapter ada = new OleDbDataAdapter(" SELECT * FROM STUDENT_INFO", con); 
    DataSet set = new DataSet(); 
    ada.Fill(set, "STUDENT_INFO"); 

    DataTable tab = new DataTable(); 
    tab = set.Tables["STUDENT_INFO"]; 

    GridView1.DataSource = tab; 
    GridView1.DataBind(); 
} 

protected void Button3_Click(object sender, EventArgs e) 
{ 
    OleDbDataAdapter ada = new OleDbDataAdapter(" SELECT * FROM STUDENTS", con); 
    DataSet set = new DataSet(); 
    ada.Fill(set, "STUDENTS"); 

    DataTable tab = new DataTable(); 
    tab = set.Tables["STUDENTS"]; 

    GridView1.DataSource = tab; 
    GridView1.DataBind(); 
} 

protected void btn1_Click(object sender, EventArgs e) 
{ 
    //ClientScript.RegisterStartupScript(this.GetType(), "myalert", "alert('" + "hello" + "');", true); 

} 

}

回答

0

许多possibilites,我更喜欢的,绑定在按钮commandArgument与标识,并在后期恢复该值回

protected void btn1_Click(object sender, EventArgs e) 
    { 
     var identifier = ((Button)sender).CommandArgument; 
    } 

的Html

<ItemTemplate> 
    <asp:Button ID="btn1" Text="Delete" runat="server" OnClick="btn1_Click" CommandArgument='<%# Eval("PropertyName") %>'/> 
</ItemTemplate>