999ANDRE999 Posted September 26, 2016 at 02:45 PM Report #599130 Posted September 26, 2016 at 02:45 PM Olá pessoal, Tenho uma gridview que apresenta dados de uma BD postgres. O que eu pretendo é intercalar o tipo de dados que apresento em cada linha, por exemplo: | NOME | IDADE | SEXO | | XPTO | 15 | M | | campo de comentarios sobre o nome | | | | ABCD | 15 | M | | campo de comentarios sobre o nome | | | Debaixo de cada linha de campos com nome idade e sexo, quero colocar um campo de comentarios, que estão guardados tambem em BD. Alguem me consegue ajudar nesta situação? 👍
apocsantos Posted September 26, 2016 at 04:19 PM Report #599135 Posted September 26, 2016 at 04:19 PM Boa tarde, Se mostrares a estrutura das tabelas, isso fica bem mais simples. Cordiais cumprimentos, Apocasntos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
999ANDRE999 Posted September 27, 2016 at 07:16 AM Author Report #599155 Posted September 27, 2016 at 07:16 AM Aqui vai: <asp:Panel ID="Panel_gridview_project" runat="server" HorizontalAlign="Center"> <asp:GridView ID="GridView_project" runat="server" HorizontalAlign="Center" BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" ForeColor="Black" AutoGenerateDeleteButton="True" ShowFooter="True" AutoGenerateColumns="False" AllowPaging="True" OnRowDeleting="gridview_RowDeleting" OnRowDataBound="Grid_RowDataBound" DataKeyNames="project" Font-Size="Smaller"> <AlternatingRowStyle BackColor="White" /> <Columns> <asp:TemplateField HeaderText="Road map of new products"> <HeaderTemplate> Road map of new products<br /> <asp:DropDownList ID="DropDownList0" runat="server" AppendDataBoundItems="true" ondblclick="this.size=1;" onfocusout="this.size=1;" onmousedown="this.size=5;"> <asp:ListItem>Green</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Red</asp:ListItem> </asp:DropDownList> </HeaderTemplate> <ItemTemplate> <asp:Label ID="Label0" Text='<%# Eval("project") %>' runat="server"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Time scheduling" InsertVisible="False"> <HeaderTemplate> Time scheduling<br /> <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" ondblclick="this.size=1;" onfocusout="this.size=1;" onmousedown="this.size=5;"> <asp:ListItem>Green</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Red</asp:ListItem> </asp:DropDownList> </HeaderTemplate> <ItemTemplate> <asp:Label ID="Label1" runat="server" Text='<%# Eval("time_scheduling") %>'></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="B-Sample (Plant)"> <HeaderTemplate> B-Sample (Plant)<br /> <asp:DropDownList ID="DropDownList2" runat="server" AppendDataBoundItems="true" ondblclick="this.size=1;" onfocusout="this.size=1;" onmousedown="this.size=5;"> <asp:ListItem>Green</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Red</asp:ListItem> </asp:DropDownList> </HeaderTemplate> <ItemTemplate> <asp:Label ID="Label2" runat="server" Text='<%# Eval("b_sample") %>'></asp:Label> <br /> <asp:Label ID="Label2_2" runat="server" Height="16px" style="text-align: center" Text='<%# Eval("top3_b_sample") %>' Width="90px"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="QA1"> <HeaderTemplate> QA1<br /> <asp:DropDownList ID="DropDownList3" runat="server" AppendDataBoundItems="true" ondblclick="this.size=1;" onfocusout="this.size=1;" onmousedown="this.size=5;"> </asp:DropDownList> </HeaderTemplate> <ItemTemplate> <asp:Label ID="Label3" runat="server" Text='<%# Eval("qa1") %>'></asp:Label> <br /> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Design Validation"> <HeaderTemplate> Design Validation<br /> <asp:DropDownList ID="DropDownList4" runat="server" AppendDataBoundItems="true" ondblclick="this.size=1;" onfocusout="this.size=1;" onmousedown="this.size=5;"> <asp:ListItem>Green</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Red</asp:ListItem> </asp:DropDownList> </HeaderTemplate> <ItemTemplate> <asp:Label ID="Label4" runat="server" Text='<%# Eval("design_validation") %>'></asp:Label> <br /> <asp:Label ID="Label4_2" runat="server" style="text-align: center" Text='<%# Eval("top3_design_validation") %>' Width="90px"></asp:Label> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="Design Freeze - Mechanical parts"> <HeaderTemplate> Design Freeze - Mechanical parts<br /> <asp:DropDownList ID="DropDownList5" runat="server" AppendDataBoundItems="true" ondblclick="this.size=1;" onfocusout="this.size=1;" onmousedown="this.size=5;"> <asp:ListItem>Green</asp:ListItem> <asp:ListItem>Yellow</asp:ListItem> <asp:ListItem>Red</asp:ListItem> </asp:DropDownList> </HeaderTemplate> <ItemTemplate> <asp:Label ID="Label5" runat="server" Text='<%# Eval("design_mechanical_parts") %>'></asp:Label> <br /> <asp:Label ID="Label5_2" runat="server" style="text-align: center" Text='<%# Eval("top3_design_mechanical_parts") %>' Width="90px"></asp:Label> </ItemTemplate> </asp:TemplateField> </Columns> <FooterStyle BackColor="#565656" /> <HeaderStyle BackColor="#565656" ForeColor="White" HorizontalAlign="Center" VerticalAlign="Middle" /> <PagerSettings Mode="NextPrevious" /> <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Center" /> <RowStyle BackColor="White" /> <SelectedRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" /> <SortedAscendingCellStyle BackColor="#FBFBF2" /> <SortedAscendingHeaderStyle BackColor="#848384" /> <SortedDescendingCellStyle BackColor="#EAEAD3" /> <SortedDescendingHeaderStyle BackColor="#575357" /> </asp:GridView> </asp:Panel> A tabela que desenhei acima nada tem a ver com esta, foi um mero exemplo da estrutura que pretendo. Por exemplo eu quero a Label2 a aparecer numa linha juntamente com o resto dos dados nessa linha e a label2_2 a aparecer por baixo da label2 noutra linha com o resto dos dados das label xpto_2 nessa linha.
apocsantos Posted September 27, 2016 at 09:17 AM Report #599164 Posted September 27, 2016 at 09:17 AM Bom dia, Eu referia-me à tabela da base de dados (nome dos campos de cada tabela). Cordiais cumprimentos, Apocsantos "A paciência é uma das coisas que se aprendeu na era do 48k" O respeito é como a escrita de código, uma vez perdido, dificilmente se retoma o habito"
999ANDRE999 Posted September 27, 2016 at 09:20 AM Author Report #599165 Posted September 27, 2016 at 09:20 AM Agora, apocsantos disse: Bom dia, Eu referia-me à tabela da base de dados (nome dos campos de cada tabela). Cordiais cumprimentos, Apocsantos A tabela é so uma com 72 colunas. mas para orientar pode usar as que estão chamadas no comando eval
_Rest_ Posted September 27, 2016 at 04:32 PM Report #599177 Posted September 27, 2016 at 04:32 PM Isso é muito vago... Esse campo de comentários pertence á mesma Row? Se for podes no SP fazeres 2 selects um para os dados outro para os comentários e depois no código crias uma relação no DataSet entre as duas Tables pelo ID e assim crias uma Band para o teu campo comentário logo por baixo da row onde tens os outros dados.
_Rest_ Posted September 29, 2016 at 02:31 PM Report #599231 Posted September 29, 2016 at 02:31 PM Conseguiste? Como não dizes nada, deixo aqui um exemplo No teu exemplo --> table1 ID Nome Idade Sexo Table2 --> ID Comentario Metes as duas tables num DataSet e depois fazes: DataSet ds = new DataSet(); //o teu codigo para carregar os dados da BD para o DataSet ds.Relations.Add("NomeDaRelação", ds.Tables[0].Columns["ID"], ds.Tables[1].Columns["ID"]); (tuaGrid).DataSource = ds; A sintaxe pode ser um bocado diferente porque uso Infragistics Na ultraGrid fico com Nome Idade Sexo --comentario Nome Idade Sexo --comentario Tens que fazer o Hide ao ID claro
999ANDRE999 Posted October 3, 2016 at 02:04 PM Author Report #599335 Posted October 3, 2016 at 02:04 PM ola _Rest_ não ainda não consegui implementar. o que é esse "NomeDaRelação"? eu so tenho uma tabela.
_Rest_ Posted October 3, 2016 at 05:17 PM Report #599344 Posted October 3, 2016 at 05:17 PM (edited) "NomeDaRelação" é uma string, podes dar o nome que quiseres á relação. Se carregares o teu DataSet com 2 Selects ficas com duas DataTables mesmo que na realidade só exista uma. Num select trazes o ID, o Nome, a Idade e o Sexo e no outro select trazes o ID e o comentario. Crias uma relação entre as 2 tabelas pelo ID e depois no DataSource da tua Grid mandas o DataSet. Pelo menos na UltraGrid ele cria logo uma Band associada por cada ID e fica intercalado como pretendes. Edited October 3, 2016 at 05:18 PM by _Rest_
999ANDRE999 Posted October 4, 2016 at 04:04 PM Author Report #599373 Posted October 4, 2016 at 04:04 PM mas neste caso eu só tenho uma tabela para tudo. Terei que criar uma tabela à parte para colocação do comentário?
_Rest_ Posted October 6, 2016 at 10:19 AM Report #599427 Posted October 6, 2016 at 10:19 AM Não tens que criar nada... Se leres com atenção o que escevi, disse para fazeres 2 SELECTS. Cada select devolve uma tabela de resultados certo, um DataSet guarda cada Select numa Table. Relacionas essas duas pelo ID e mandas o DataSet para o DataSource da grid.
999ANDRE999 Posted November 17, 2016 at 02:06 PM Author Report #600595 Posted November 17, 2016 at 02:06 PM Em 03/10/2016 às 18:17, _Rest_ disse: "NomeDaRelação" é uma string, podes dar o nome que quiseres á relação. Se carregares o teu DataSet com 2 Selects ficas com duas DataTables mesmo que na realidade só exista uma. Num select trazes o ID, o Nome, a Idade e o Sexo e no outro select trazes o ID e o comentario. Crias uma relação entre as 2 tabelas pelo ID e depois no DataSource da tua Grid mandas o DataSet. Pelo menos na UltraGrid ele cria logo uma Band associada por cada ID e fica intercalado como pretendes. Ainda não consegui resolver este problema. Podes pf colocar um exemplo do que dizes?
_Rest_ Posted March 14, 2017 at 03:52 PM Report #603143 Posted March 14, 2017 at 03:52 PM Falha minha na solução que te dei, isso funciona numa UltraGrid (infragistics), a grid do windows não suporta multi bands. Com a do windows penso que para implementar relações seria necessário 2 grids uma para as parent rows e outra para as child rows.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now