none
Criar Página Dinamicamente no Aspx

    Pergunta

  • Olá, tudo bem?
    Estou desenvolvendo um sistema escolar em Asp.net e C# que tornará digital inclusive as provas (os alunos farão-as digitamente). Mas para isso estou com um problema que não sei como resolver e por isso peço a ajuda de vcs
    Quando o professor (a) montar a prova, ele irá adicionando questões, podendo ser dissertativa ou objetiva... Quanto a isso tudo tranquilo. O Problema estah na hora de carregar a prova para o aluno responder.. Terei que montar a página dinamicamente, incluindo as perguntas conforme o professor cadastrou.. mas como faço para montar a prova na tela e capturar as respostas no Code Behind para registrar e armazenar no banco?
    Exemplo: se for uma questão objetiva, com 4 alternativas.. como farei para colocar na tela as alternativas e conseguir capturar qual foi a resposta do aluno... e se for uma pergunta dissertativa, como capturar o texto que o aluno digitar num textArea que tbm será incluido dinamicamente...
    Espero que tenham conseguido entender minha dúvida..
    Desde já agradeço
    att.
    Junior
    quarta-feira, 10 de agosto de 2011 01:34

Respostas

  • Junior.ngc tente criar um WebUserControl

    dentro dele você coloca um componente Datalist ai é só você linkar os campos do banco com os campos que estiverem no datalist ai depois é só você criar o Code Behind para pegar os dados

    Ex:

     

     

    <asp:DataList ID="Lista" runat="server" RepeatColumns="10" DataSourceID="SqlDsProdutos"
     RepeatLayout="Flow">
     <ItemTemplate>
      <table>
       <tr>
        <td>
         <table>
          <tr>
           <td>
            <a href='Projetos.aspx?Projeto=<%# DataBinder.Eval(Container.DataItem, "ID_Obra") %>'>
             <img border="0" width="166" height="125" src='<%# DataBinder.Eval(Container.DataItem, "ImagemP") %>'
              id="IMG1"" /></a>
           </td>
           <td>
           </td>
          </tr>
         </table>
        </td>
        <td valign="top">
         <asp:Panel runat="server" ID="PnlTexto" Height="90px" Width="604px">
          <table style="height: 48px">
           <tr>
            <td class="textoAzul">
             <a href='Projetos.aspx?Projeto=<%# DataBinder.Eval(Container.DataItem, "ID_Obra") %>'>
              <%# DataBinder.Eval(Container.DataItem, "Titulo") %>
             </a>
            </td>
           </tr>
           <tr>
            <td class="texto">
             <asp:Literal ID="Lit_Texto" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Texto_Abreviado") %>'>
             </asp:Literal>
            </td>
           </tr>
          </table>
         </asp:Panel>
         <asp:Panel runat="server" ID="PnlTexto2" Height="40px" Width="605px">
          <table style="height: 48px">
           <tr>
            <td class="textoAzul">
             <a href='Projetos.aspx?Projeto=<%# DataBinder.Eval(Container.DataItem, "ID_Obra") %>'>
              Mais Informções </a>
            </td>
           </tr>
          </table>
         </asp:Panel>
        </td>
       </tr>
       <tr>
        <td height="15" colspan="4">
         <img src="images/friso.gif" width="832" height="29" />
        </td>
       </tr>
      </table>
     </ItemTemplate>
    </asp:DataList>
    <asp:SqlDataSource ID="SqlDsProdutos" runat="server" SelectCommand="SELECT ID_Imagem, ID_Obra, ID_Empresa, EmpNome, EmpRS, ImagemP, Texto_Html, Texto_Abreviado, Titulo, DisponivelWeb, Inativo, Padrao, ImagemG FROM VwCO102_ObrasImagensDadosAdicionais WHERE ID_Empresa = @ID_Empresa AND DisponivelWeb = 1 AND Inativo = 0 AND Padrao = 1 ORDER BY ID_Obra DESC"
     ConnectionString="<%$ ConnectionStrings:AutoSystemLite2006ConnectionString %>">
     <SelectParameters>
      <asp:Parameter Name="ID_Empresa" Type="Int32" DefaultValue="1" />
     </SelectParameters>
    </asp:SqlDataSource>
    


     


    quarta-feira, 10 de agosto de 2011 12:35
  • Junior tem várias maneiras de vc fazer isso, usercontrol, vc pode user um literal e ir adicionando os campos dinamicamente, vc pode ter a opçào para o professor escolher os tipo de campos textboxt,checkbox e etc
    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    quarta-feira, 10 de agosto de 2011 17:31

Todas as Respostas

  • Junior.ngc tente criar um WebUserControl

    dentro dele você coloca um componente Datalist ai é só você linkar os campos do banco com os campos que estiverem no datalist ai depois é só você criar o Code Behind para pegar os dados

    Ex:

     

     

    <asp:DataList ID="Lista" runat="server" RepeatColumns="10" DataSourceID="SqlDsProdutos"
     RepeatLayout="Flow">
     <ItemTemplate>
      <table>
       <tr>
        <td>
         <table>
          <tr>
           <td>
            <a href='Projetos.aspx?Projeto=<%# DataBinder.Eval(Container.DataItem, "ID_Obra") %>'>
             <img border="0" width="166" height="125" src='<%# DataBinder.Eval(Container.DataItem, "ImagemP") %>'
              id="IMG1"" /></a>
           </td>
           <td>
           </td>
          </tr>
         </table>
        </td>
        <td valign="top">
         <asp:Panel runat="server" ID="PnlTexto" Height="90px" Width="604px">
          <table style="height: 48px">
           <tr>
            <td class="textoAzul">
             <a href='Projetos.aspx?Projeto=<%# DataBinder.Eval(Container.DataItem, "ID_Obra") %>'>
              <%# DataBinder.Eval(Container.DataItem, "Titulo") %>
             </a>
            </td>
           </tr>
           <tr>
            <td class="texto">
             <asp:Literal ID="Lit_Texto" runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "Texto_Abreviado") %>'>
             </asp:Literal>
            </td>
           </tr>
          </table>
         </asp:Panel>
         <asp:Panel runat="server" ID="PnlTexto2" Height="40px" Width="605px">
          <table style="height: 48px">
           <tr>
            <td class="textoAzul">
             <a href='Projetos.aspx?Projeto=<%# DataBinder.Eval(Container.DataItem, "ID_Obra") %>'>
              Mais Informções </a>
            </td>
           </tr>
          </table>
         </asp:Panel>
        </td>
       </tr>
       <tr>
        <td height="15" colspan="4">
         <img src="images/friso.gif" width="832" height="29" />
        </td>
       </tr>
      </table>
     </ItemTemplate>
    </asp:DataList>
    <asp:SqlDataSource ID="SqlDsProdutos" runat="server" SelectCommand="SELECT ID_Imagem, ID_Obra, ID_Empresa, EmpNome, EmpRS, ImagemP, Texto_Html, Texto_Abreviado, Titulo, DisponivelWeb, Inativo, Padrao, ImagemG FROM VwCO102_ObrasImagensDadosAdicionais WHERE ID_Empresa = @ID_Empresa AND DisponivelWeb = 1 AND Inativo = 0 AND Padrao = 1 ORDER BY ID_Obra DESC"
     ConnectionString="<%$ ConnectionStrings:AutoSystemLite2006ConnectionString %>">
     <SelectParameters>
      <asp:Parameter Name="ID_Empresa" Type="Int32" DefaultValue="1" />
     </SelectParameters>
    </asp:SqlDataSource>
    


     


    quarta-feira, 10 de agosto de 2011 12:35
  • Você não precisa criar uma página nova dinamicamente, só as perguntas. Que tal usar um list view para mostrar as perguntas?

    no .cs dá sim para pegar as respostas a partir do listview

    quarta-feira, 10 de agosto de 2011 13:19
  • Junior tem várias maneiras de vc fazer isso, usercontrol, vc pode user um literal e ir adicionando os campos dinamicamente, vc pode ter a opçào para o professor escolher os tipo de campos textboxt,checkbox e etc
    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
    quarta-feira, 10 de agosto de 2011 17:31