Я использую сетку, заполненную 7 кнопками и 2 полями в каждой строке.
Я пытаюсь изменить цвет моего поля кнопок при каждом нажатии и выполняю обновление базы данных с помощью sp.
Я попытался получить это на rowcommand, но с нулевой ссылкой для объекта кнопки.
Я также попытался найти некоторые ссылки на этот предмет, но только что нашел элементы в полях шаблонов с кнопками внутри, и я хотел бы использовать поле кнопок, а не шаблон.
Вот пример строки моего вида:
<asp:ButtonField DataTextField="datechg_1" HeaderText="Date chg 1" Text="Btn1" ButtonType="Button" CommandName="chgColor"></asp:ButtonField>
<asp:ButtonField DataTextField="datechg_2" HeaderText="Date chg 2" Text="Btn2" ButtonType="Button" CommandName="chgColor"></asp:ButtonField>
<asp:ButtonField DataTextField="datechg_3" HeaderText="Date chg 3" Text="Btn3" ButtonType="Button" CommandName="chgColor"></asp:ButtonField>
и вот код строки команды, выбрасывающий нулевую ссылку:
protected void grid_date_RowCommand(object sender, GridViewCommandEventArgs e)
{
if (e.CommandName=="chgColor")
{
Button btn = e.CommandSource as Button; << null reference here -_-
var color = btn.Style.Value;
switch (color)
{
case "background-color:red;":
btn.Style["background-color"] = "rgb(0,200,83)";
break;
case "background-color:blue;":
btn.Style["background-color"] = "rgb(242,101,34)";
break;
case "background-color:green;":
btn.Style["background-color"] = "rgb(229,57,53)";
break;
}
}
}
Полагаю, цвет переключателя не очень хорош, но сейчас это не проблема. Я хотел бы знать, как нажать кнопку.
Спасибо за вашу помощь:)