Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá,
estou iniciando no ASP.NET e comecei a testar algumas coisas.
Obs:
. estou tentando montar o grid pelo código e não pela toolbox.
. estou usando ajax-enabled website
. estou usando accessdatasource
Primeiramente, monto meu grid no .aspx:
<asp:AccessDataSource ID="AccessDataSource1" runat="server" DataFile="~/banco.mdb"></asp:AccessDataSource>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:TextBox ID="TextBox1" runat="server" OnTextChanged="TextBox1_TextChanged" AutoPostBack="true"></asp:TextBox>
<asp:MultiView ID="MultiView1" runat="server" ActiveViewIndex="0">
<asp:View ID="ViewCliente" runat="server">
<asp:GridView ID="GridViewCliente" runat="server" Width="100%"></asp:GridView>
</asp:View>
</asp:MultiView>
</ContentTemplate>
</asp:UpdatePanel>
Após, crio minha função de filtro genérica para poder usar em outras tabelas e a atribuo ao textbox:
private void filtraGrid(AccessDataSource datasource, GridView grid, string filtro)
{
datasource.FilterExpression = "nome like '%" + filtro + "%'";
grid.DataBind();
}
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
filtraGrid(AccessDataSource1,GridViewCliente,TextBox1.Text);
}protected void Page_Load(object sender, EventArgs e)
{
AccessDataSource1.SelectCommand = "select id_cliente,nome,contato,tel,email from CLIENTE order by NOME,CONTATO";
AccessDataSource1.DeleteCommand = "delete from CLIENTE where ID_CLIENTE = @id_cliente";
AccessDataSource1.InsertCommand = "insert into CLIENTE (nome) values ('"+ TextBox1.Text +"')";
AccessDataSource1.FilterExpression = "";
MontaGridview(GridViewCliente, "ID,Nome,Contato,Tel,E-mail", "id_cliente,nome,contato,tel,email", "id_cliente");
GridViewCliente.DataSourceID = "AccessDataSource1";
}public void MontaGridview(GridView grid, string campos, string valores, string datakeynames)
{
//limpa o grid
grid.Columns.Clear();
//da split nos campos e valores
char[] splitter = new char[] { ',' };
string[] campo = campos.Split(splitter);
string[] valor = valores.Split(splitter);
//define o datakeyname
string[] datakeyname = new string[] { datakeynames };
//adiciona as colunas no grid
for (int t = 0; t < campo.Length; t++)
{
BoundField coluna = new BoundField();
coluna.HeaderText = campo[t];
coluna.DataField = valor[t];
coluna.SortExpression = valor[t];
if(datakeynames == valor[t])
{
coluna.InsertVisible = false;
coluna.ReadOnly = true;
}
grid.Columns.Add(coluna);
}
//cria a coluna de delete
CommandField delete = new CommandField();
delete.DeleteImageUrl = "~/icons/delete.gif";
delete.ButtonType = ButtonType.Image;
delete.DeleteText = "Del";
delete.ShowDeleteButton = true;
grid.Columns.Add(delete);
//define o key do grid
grid.DataKeyNames = datakeyname;
//define estilos
grid.FooterStyle.BackColor = corHtml("#5D7B9D");
grid.FooterStyle.Font.Bold = true;
grid.FooterStyle.ForeColor = corHtml("#FFFFFF");
grid.RowStyle.BackColor = corHtml("#F7F6F3");
grid.RowStyle.ForeColor = corHtml("#333333");
grid.EditRowStyle.BackColor = corHtml("#999999");
grid.SelectedRowStyle.BackColor = corHtml("#E2DED6");
grid.SelectedRowStyle.Font.Bold = true;
grid.SelectedRowStyle.ForeColor = corHtml("#333333");
grid.PagerStyle.BackColor = corHtml("#284775");
grid.PagerStyle.ForeColor = corHtml("#FFFFFF");
grid.PagerStyle.HorizontalAlign = HorizontalAlign.Center;
grid.HeaderStyle.BackColor = corHtml("#5D7B9D");
grid.HeaderStyle.Font.Bold = true;
grid.HeaderStyle.ForeColor = corHtml("#FFFFFF");
grid.AlternatingRowStyle.BackColor = corHtml("#FFFFFF");
grid.AlternatingRowStyle.ForeColor = corHtml("#284775");
grid.ForeColor = corHtml("#333333");
grid.CellPadding = 4;
//define configurações padrões
grid.AllowPaging = true;
grid.AllowSorting = true;
grid.AutoGenerateColumns = false;
grid.GridLines = GridLines.None;
grid.PageSize = 20;
grid.EmptyDataText = " ";
grid.EnableSortingAndPagingCallbacks = true;
}public Color corHtml(string cor)
{
Color corcolor = ColorTranslator.FromHtml(cor);
return corcolor;
}Carregando comentários...