Fórum Detalhes no GridView #5355
05/05/2009
0
Fernando Reis
Curtir tópico
+ 0Posts
05/05/2009
Fabio Mans
GRID
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
<asp:GridView ID="GridView1" runat="server"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField></asp:TemplateField>
</Columns>
</asp:GridView>
</form>
</body>
</html>
CÓDIGO
public partial class GridView : System.Web.UI.Page
{
//Aqui vc tem que ter o valor do seu funcionário em algum uma Session, um Cookie e recuperar
private string funcionario;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
funcionario = "a";
PreencheGrid();
}
}
private void PreencheGrid()
{
GridView1.DataSource = GetDataSet();
GridView1.DataBind();
}
private static DataSet GetDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable("Table");
dt.Columns.Add("Name", Type.GetType("System.String"));
dt.Columns.Add("Address", Type.GetType("System.String"));
dt.Columns.Add("Phone", Type.GetType("System.String"));
DataRow dr = dt.NewRow();
dr["Name"] = "MARIA";
dr["Address"] = "SAO PAULO";
dr["Phone"] = "3274-9513";
dt.Rows.Add(dr);
dr = dt.NewRow();
dr["Name"] = "FELIPE";
dr["Address"] = "SALVADOR";
dr["Phone"] = "9308-8592";
dt.Rows.Add(dr);
ds.Tables.Add(dt);
return ds;
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
if(Equals(funcionario,"a"))
{
//Vamos supor que você queira passar o número de cadastro dele - 1520
e.Row.Cells[0].Text =
string.Format("<a href='Documento.aspx?IdDoc='>ACESSAR</a>", "1520");
}
else
{
//Funcionario B - 1690
e.Row.Cells[0].Text =
string.Format("<a href='Documento.aspx?IdDoc='>ACESSAR</a>", "1690");
}
}
}
Para utilizar uma imagem basta substituir o ACESSAR pelo seguinte.
<a href='Documento.aspx?IdDoc='>ACESSAR<img src='../Imagens/arrow-right_cinza.gif' title='Detalhes' border='0'></a>
Espero ter ajudado.
==========================================================
Ola
Vejam minha necessidade,
Estou trabalhando em um site que disponibiliza serviços na Web.
Por exemplo o Funcionário A tem direito ao Serviço A e Serviço B
Após seu LOgin e senha, direciono este a uma página com uma GridView que realiza a busca dos serviços disponíveis,
Como faço para que em tempo de execução um Hyperlink dentro da Grid. receba uma URL em Específico,
Pensei em Usar um HyperlinkField, Mas gostaria de Entender como faço isto com um pouco mais de detalhes,
por exemplo.
Caso seja o Serviço a o Link recebe "~/ServicoA.aspx?id=" onde Zero seja o Código do funcionario.
Gostaria de Saber também como posso usar isto com uma imagem.
Grato
Gostei + 0
06/05/2009
Fernando Reis
Obrigado pela dica,
Incrivel como me parece táo logico,
aproveitando o Chamado, queria perguntar
na linha abaixo
//Funcionario B - 1690
e.Row.Cells[0].Text =
string.Format("<a href='Documento.aspx?IdDoc='>ACESSAR</a>", "1690");
ao inves de colocar o numero, "1690" eu (claro) posso modificar para o valor da Célula?
por exemplo:
//Funcionario B - 1690
e.Row.Cells[0].Text =
string.Format("<a href='Documento.aspx?IdDoc='>ACESSAR</a>", e.Row.Cells[0].text);
Obrigado
Gostei + 0
06/05/2009
Fernando Reis
se Eu fosse trabalhar com este Exemplo oque eu mudaria no Caso de um IMAGEBUTON?
https://www.devmedia.com.br/articles/viewcomp.asp?comp=9281&hl=
Grato
Gostei + 0
06/05/2009
Fabio Mans
<asp:ButtonField ButtonType="Image" CommandName="Direcionar" ImageUrl="~/Images/aprove.gif" FooterText="Approve" >
<ItemStyle HorizontalAlign="Center" />
</asp:ButtonField>
protected void gvwApprove_RowCommand(object sender, GridViewCommandEventArgs e)
{
//Aqui você pode recuper um id no datakey
int ID = Convert.ToInt32(
gvwApprove.DataKeys[Convert.ToInt32(e.CommandArgument)][0]);
if (e.CommandName == "Direcionar")
{
if(usuario a faz alguma coisa)
}
else
{
senao faz outra coisa.
}
}
Sobre sua segunda dúvida eu não entendi.
Fabio
Gostei + 0
07/05/2009
Fernando Reis
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)