Кнопка кода ASP.NET C # в виде сетки - PullRequest
2 голосов
/ 06 апреля 2011

Привет всем, у меня есть GridView (GridView1) Я добавил столбец и вставил кнопку:

<asp:GridView ID="GridView1" runat="server" AllowPaging="True" 
            AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" 
            onselectedindexchanged="GridView1_SelectedIndexChanged" Width="798px">
            <Columns>
                .....
                <asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" />
            </Columns>
        </asp:GridView>

По сути, при нажатии кнопки я хочу запустить обновление SQL, но не могу нажать кнопку, чтобы ввести C # и добавить запрос. Я могу получить в C # для страницы, но не знаю, что написать для метода.

Вот код C #:

 void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "cmdFlag")
        {
        con.Open();

        cmd = new SqlCommand("UPDATE Comments SET Flagged = '" + "Yes" + "'", con); 

        cmd.ExecuteNonQuery();


        }

    }

Хотя ничего не делает. В основном мне нужно, чтобы он посмотрел на строку, и если нажата помеченная кнопка, измените комментарий на «Да» под помеченной.

Ответы [ 4 ]

2 голосов
/ 06 апреля 2011

Вы не получите прямого события. Вам нужно написать код для события RowCommand.

void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{
    if(e.CommandName=="cmdFlag")
        {
        //Write code update database
    }
}

Также вам нужно изменить элемент управления GridView. Добавить событие, как это.

onrowcommand="GridView1_RowCommand"

Вы можете получить больше информации здесь

0 голосов
/ 06 апреля 2011

Если вы хотите добавить идентификатор, чтобы использовать его в своем выражении WHERE, вы можете поместить его в CommandArgument как

<asp:ButtonField ButtonType="Button" CommandName="cmdFlag" Text="Flag" CommandArgument='<%# Eval("Comment_ID") %>' />

тогда в коде вы можете получить его от

var id = e.CommandArgument.ToString();

Обновление: только что обновил код

0 голосов
/ 06 апреля 2011

Зарегистрируйте обработчик событий в файле с выделенным кодом, выполнив это

GridView1.RowCommand += new GridViewCommandEventHandler(GridView1_RowCommand);

и добавьте это на странице aspx

OnRowCommand="GridView1_RowCommand"
0 голосов
/ 06 апреля 2011

Вы забыли добавить OnRowCommand="GridView1_RowCommand" в свой Gridview, поэтому он не запускает событие RowCommand.

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand" AllowPaging="True" 
        AutoGenerateColumns="False" DataSourceID="ObjectDataSource2" 
        onselectedindexchanged="GridView1_SelectedIndexChanged" Width="798px">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...