Как я могу получить данные по нажатой кнопочной строке Grid View? - PullRequest
1 голос
/ 29 января 2012

Я строю сайт, но есть проблема. Я не знаю, как мне получить доступ к данным сетки, в какой строке нажимается кнопка.

.aspx файл:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlEntry"
    CssClass="style1">
    <Columns>
        <asp:BoundField DataField="ReordID" HeaderText="ReordID" InsertVisible="False" SortExpression="ReordID"
            Visible="False" />
        <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
        <asp:BoundField DataField="EmailID" HeaderText="EmailID" SortExpression="EmailID" />
        <asp:BoundField DataField="Password" HeaderText="Password" SortExpression="Password" />
        <asp:TemplateField HeaderText="Delete" SortExpression="Delete">
            <ItemTemplate>
                <asp:Button Text="Delete" runat="server" OnClick="Grid_Click" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <HeaderStyle BackColor="Gray" />
    <AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>
<asp:SqlDataSource ID="SqlEntry" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [Entry]"></asp:SqlDataSource>

.CS файл:

protected void Refresh_Click(object sender, EventArgs e)
{
    GridView1.DataBind();
    resetdata();
}
protected void Submit_Click(object sender, EventArgs e)
{
    string str = "INSERT INTO Entry (Name, EmailID, Password) VALUES ('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "');";
    Connection conn = new Connection(str);
    Refresh_Click(sender, e);
}
protected void resetdata()
{
    TextBox1.Text = "";
    TextBox2.Text = "";
    TextBox3.Text = "";
}
protected void Grid_Click(Object sender, EventArgs e)
{
    string str = "DELETE FROM Entry WHERE RecordID = @RecordID";
    Connection conn = new Connection(str);
    GridView1.DataBind();
    resetdata();
}

Класс подключения:

public Connection(string qry)
{
    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = qry;
    cmd.Connection = con;
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
}

Как я могу удалить данные из SQL Server 2005, используя эту веб-страницу? В чем проблема в коде?

1 Ответ

0 голосов
/ 29 января 2012

Вы можете прикрепить CommandArgument и CommandName к вашей кнопке, содержащей идентификатор -

<ItemTemplate>
     <asp:Button Text="Delete" runat="server" CommandArgument="<%# Eval('ReordID') %>" CommandName="REMOVE" OnClick="Grid_Click" />
 </ItemTemplate>

..., а затем добавить событие RowCommand в GridView -

void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{

    if(e.CommandName=="REMOVE")
    {
        int orderId = Convert.ToInt32(e.CommandArgument);
        //Do Sql Here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...