Манипулировать текстовым полем в gridview C # - PullRequest
0 голосов
/ 10 декабря 2018

Я пытаюсь создать таблицу, похожую на фигуру.Когда я нажимаю «Изменить», мне нужно включить текстовое поле этой строки в столбце для изменения....

У моего мероприятия есть этот код.Проблема в том, что GVBookDetails.FindControl возвращает ноль, и я не могу понять почему, потому что у меня есть этот контроль.

protected void btnEditQuantity_Click(object sender, EventArgs e)
{
    int productID = Convert.ToInt32((sender as Button).CommandArgument); // get productID from EditButton
    Book book = (Book)Session["BookID"]; // object instance to use in edit query

    TextBox textBox = GVBookDetails.FindControl("tbQuantityEdit") as TextBox;

    textBox.Enabled = true;
    int quantity = Convert.ToInt32(textBox.Text);
}

1 Ответ

0 голосов
/ 10 декабря 2018

Похоже, вы пытаетесь найти TextBox в самом GridView.Не строка, в которой находятся кнопка и текстовое поле. Вы можете использовать NamingContainer отправителя, чтобы найти TextBox.

protected void btnEditQuantity_Click(object sender, EventArgs e)
{
    //cast the sender back to a button
    Button cb = sender as Button;

    //get the current gridviewrow from the button namingcontainer
    GridViewRow row = cb.NamingContainer as GridViewRow;

    //use findcontrol to locate the textbox in that row
    TextBox tb = row.FindControl("tbQuantityEdit") as TextBox;

    //do something with the textbox
    tb.Text = "TextBox found!";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...