Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

dianaemanuel

DataSource

Recommended Posts

dianaemanuel

Bons dias,

Eu tenho uma duvida relativamente a uma listview e vários datasource.

No meu projecto tenho uma listview em forma de grid que está ligada a um sqlDataSource, mas nesta listview eu acrescentei colunas através do código source e agora quero ligar estas colunas a outros campos de uma outra tabela (ou seja, de outro sqlDataSource), será que isto é possivel?

Fico a aguardar resposta.

Cumprimentos

dianaemanuel

Share this post


Link to post
Share on other sites
Tuntankamon

Não me parece que seja possível...

O melhor que deves fazer é alterar o datasource original alterando a query de modo a devolver-te todas as colunas que desejas utilizar.

Share this post


Link to post
Share on other sites
paulo silva

Boas,

Exactamente como o r00tfixxxer está a dizer, a Uma listview só podes ter associado um SqlDatasource, Aconselho-te a rever o DataSource por forma de organização e de funcionalidade.

Cumprimentos Paulo Silva

Share this post


Link to post
Share on other sites
dianaemanuel

Mas eu na minha ListView inseri uma TextBox e um DropDownList a uma das colunas, através do código source, a textbox em principio não será possivel ligar a um sqldatasource diferente a não ser o que está na listview, mas o dropdownlist já é possinel, não é? Através da propriedade DataSourceID.

Mas como é que eu consigo dazer com que o meu sqldatasource esteja ligado a mais do que uma tabela? É porque as colunas que eu acrescentei estão em tabelas diferentes da que está no sqlDataSource original.

cumprimentos

dianaemanuel

Share this post


Link to post
Share on other sites
Tuntankamon

Sendo assim o caso já muda de figura, não estou muito bem dentro do asp, mas a ideia  geral deve ser a mesma...

Se podes definir uma datasource diferente para a DropDownList (DDL), deves defini-la, depois tens de definir três propriedades:

1 - Qual o campo do novo datasource que deves mostrar (DataTextField)

2 - Qual o campo que está relacionado com a outra tabela, normalmente numérico (DataValueField)

3 - Qual o campo do datasource original que faz a ligação a este segundo Datasource (não estou a ver qual seja a propriedade)

E se estiver tudo correcto, deve funcionar...

Share this post


Link to post
Share on other sites
dianaemanuel

Isso já consegui fazer só que o meu problema é:

-> As colunas que acrescentei na ListView não são campos do DataSource que está ligado á ListView;

-> As colunas que acrescentei quero que estejam ligados a a uma tabela que contenha estes campos;

-> Quero que mostre na ListView estes campos preenchidos;

-> Quando insiro uma nova linha na List quero que guarde estes campos que foram acrescentados na tabela que contem estes campos, que no caso não é a mesma que a tabela do ListView.

Não sei se estou a fazer me entender??

Eu tenho estado a pesquisar e acho que tem que ser feito através dos comandos do sql o insert e o select.

Cumprimentos

dianaemanuel

Share this post


Link to post
Share on other sites
Tuntankamon

Não tenho a certeza...  :)

Tens uma lista com dados da Source1, adicionas novas colunas da Source2. Existe alguma relação entre as duas Sources?

Já agora se pudesses dizer as querys de cada uma das sources, se calhar, era mais fácil entender e tentar solucionar depois.

Share this post


Link to post
Share on other sites
dianaemanuel

Sim eu tenho uma ListView ligada a 1 datasource, depois acrescentei 2 colunas, cada 1 ligada a um datasource diferente.

Ainda só estou a testar para uma coluna:

<asp:DropDownList ID="ddlperiodobalanço" runat="server" DataSourceID="SqlDataSource3" DataTextField="CodigoConta" DataValueField="CodigoConta"/>
                        <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionASPX %>" ProviderName="<%$ ConnectionStrings:ConnectionASPX.ProviderName %>" 
                            SelectCommand="SELECT [CodigoConta] FROM [PlanoContas]"></asp:SqlDataSource>

Não sei se este código ajuda em alguma coisa, porque o que está aqui está a fazer bem, o problema é quando é pa inserir em outro campo de outra tabela.

Share this post


Link to post
Share on other sites
Tuntankamon

Só postastes a query do primeiro datasource...

As outras duas colunas são o quê?

Share this post


Link to post
Share on other sites
dianaemanuel

Aqui está o código do InsertItemTemplate do ListView

<InsertItemTemplate>
                <tr style="">
                    <td>
                        <asp:Button ID="InsertButton" runat="server" CommandName="Insert" 
                            Text="Insert" />
                        <asp:Button ID="CancelButton" runat="server" CommandName="Cancel" 
                            Text="Clear" />
                    </td>
                    <td>
                         </td>
                     <td>
                        <asp:TextBox ID="IDTextBox" runat="server" 
                            Text='<%# Bind("ID") %>' Width="120" />   
                    </td>
                    <td>
                        <asp:TextBox ID="CodigoContasTextBox" runat="server" 
                            Text= ????? Width="120" />
                         <asp:DropDownList ID="ddlccbalanço" runat="server" DataSourceID="SqlDataSource3" DataTextField="CodigoConta"    DataValueField="CodigoConta"/>
                         <asp:SqlDataSource ID="SqlDataSource3" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionASPX %>" ProviderName="<%$ ConnectionStrings:ConnectionASPX.ProviderName %>" 
                            SelectCommand="SELECT [CodigoConta] FROM [PlanoContas]"></asp:SqlDataSource>   
                    </td>
                     <td>
                        <asp:TextBox ID="TextBoxperiodobalanço" runat="server" 
                            Text=?????? />
                        <asp:DropDownList ID="ddlperiodobalanço" runat="server" DataSourceID="SqlDataSource4" DataTextField="periodo"    DataValueField="periodo"/>
                        <asp:SqlDataSource ID="SqlDataSource4" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionASPX %>" ProviderName="<%$ ConnectionStrings:ConnectionASPX.ProviderName %>" 
                            SelectCommand="SELECT [periodo] FROM [balanço]"   
                            </asp:SqlDataSource>
                    </td>


Eu quero que:

-> na TextBox ID="CodigoContasTextBox" aparece aquilo que escolhi da DropDownList ID="ddlccbalanço";

-> depois aquilo que seleccionei da DropDownList ID="ddlccbalanço" quero que esse valor escolhido seja gravado em outra tabela;

-> na TextBox ID="TextBoxperiodobalanço" apareça o que escolhi do DropDownList ID="ddlperiodobalanço";

-> e que seja gravado em outra tabela;

-> Ou seja, aquilo que insiro aqui quero que seja gravado em outras tabelas pelo menos estes dois campos, mas também quero que depois de gravados eles sejam vistos nesta ListView.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.