У меня есть две кнопки (btn_Out и btn_In). Я хочу отобразить btn_Out, если значение поля Active в таблице SQL с именем Машины - это True (1) и отображение btn_In, если значение Active установлено в False (0).Показать кнопку, основанную на значении поля в базе данных SQL
Каждая строка в данных в gridview может иметь другой флаг Active, поэтому кнопка должна отражать это. Кнопка изменит активный флаг с 0 на 1 и наоборот (у меня это работает!).
Я использую GridView и мой код выглядит следующим образом:
ASP.NET
<ItemTemplate>
<asp:Button ID="btn_In" runat="server" Text="Set in Scope" CommandName="Update" CssClass="Button" />
</ItemTemplate>
<ItemTemplate>
<asp:Button ID="btn_Out" runat="server" Text="Set in Scope" CommandName="Update" CssClass="Button" />
</ItemTemplate>
C#:
DataTable dt = new DataTable();
using (SqlDataAdapter sda = new SqlDataAdapter(cmd))
{
sda.Fill(dt);
GridView1.DataSource = dt;
GridView1.DataBind();
con.Open();
con = new SqlConnection(cs);
// SqlCommand cmd = new SqlCommand();
cmd.CommandText = "select [active] from [ALLMACHINES].[dbo].[Machines] where [serial_number] = @serialNumber";
cmd.Parameters.AddWithValue("@Serial_Number", serialNumber);
int Active = Convert.ToInt32(cmd.ExecuteScalar());
if (Active == 1)
{
btn_In.Visible = false;
btn_Out.Visible = true;
}
else if (Active == 0)
{
btn_Out.Visible = false;
btn_In.Visible = true;
}
}
Моя страница aspx.net не нравится, что я «Я использовал кнопки в выражении if и else if и не компилирую! Любые советы были бы очень благодарны :)
Какая ошибка вы получаете? Canyou поставил полный код, с именами методов и всеми. –
Где ваш код? Вы должны сделать это на странице Load. –
вам нужно знать, как работают PostBacks и Rendering .. вам нужно получить атрибуты кнопки, чтобы сделать это также в коде C#, за тем, в каком событии находится этот код ..? – MethodMan