Передача более одного аргумента в кнопку asp.net в gridview - PullRequest
2 голосов
/ 05 апреля 2010

У меня есть столбец TemplateField в виде сетки с кнопкой внутри него.

Нет значения ключа (конечно, оно не было разработано мной), но, с другой стороны, при сравнении каждого отдельного столбца нет избыточности, потому что они являются событиями, и есть «дата начала» и «дата окончания» «чего-то, что не могло произойти дважды одновременно.

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

Я проверял:

<asp:Button  CommandArgument='<%# Eval("day")%>'  ID="Button2" runat="server" Text="Button" />

И это работает правильно, день выбранной строки пройден и может быть получен через:

e.CommandArgument.ToString();

в обработчике GridView_RowCommand.

Как мне передать более одного аргумента? Я думал о конкатенации с разделяющим символом (это было бы не так уж плохо), но помимо того, что я еще не знал, как это сделать (не хотел вкладывать деньги в плохое решение), мне нужен более умный.

1 Ответ

2 голосов
/ 05 апреля 2010

Самый простой способ - получить доступ к строке GridView с помощью кнопки и получить доступ к значениям следующим образом:

void Button2_Click(object o, EventArgs e) {
    Button myButton = (Button)o;
    GridViewRow row = (GridViewRow)muButton.Parent.Parent;

    string value1 = row.Cells[0].Text;
    string value2 = row.Cells[1].Text;
    ...
}
...