none
Questionario com perguntas do Banco de Dados

    Pergunta

  •  

    Estou com o seguinte problema...

    Quero fazer um Questionario... bom deixa eu explicar como vai funcionar né...

    Varios usuarios inserem  perguntas.

    O ADM seleciona quais perguntas farao parte do questionario.

    os usuarios respondem o questionario.

     

    O problema esta na hora de carregar as questoes, consigo fazer o selec direitinho, e usando um formView as questoes aparecem certinho, mas só com paginacao. Quero fazer com que todas as questões aparecao em uma tela só pois havera um tempo limite para o usuario responder as questoes (todas). E as respostas do usuario serao cadastradas numa tabela no BD tambem... alguem pode me dar uma luz aqui?

    quinta-feira, 21 de fevereiro de 2008 19:02

Respostas

  • Eu usaria o Gridview ou o DataList..

    Acho q esses controles devem atender suas necessidades.

    quinta-feira, 21 de fevereiro de 2008 19:54
  • O Foreach ele percorre linha por linha do Gridview por exemplo, ou seja cada foreach vai ser uma pergunta q vc vai esta verificando.

     

    Exemplo:

     

    foreach (Gridview item in Gridview1.Controls)

    {

    if (item is RadionButton)

    {

    //Aqui vc vai verificar qual opção esta sendo marcada

    }

    }

     

     

     

    sexta-feira, 22 de fevereiro de 2008 19:09
  • Olá  hbauer,

    Bom, eu tenho um sistema de avaliação institucional em q eu uso um DataGrid e até agora não tive problemas.
    A questão é a seguinte:

    Tenho 3 Tabelas:
    TB_Perguntas: Onde cadastro todas as perguntas sobre a instituição;
    TB_Respostas: Onde cadastro todas as respostas relacionadas à cada pergunta, assim cada pergunta poderá ter um número de respostas q será escolhida pelo aluno;
    TB_Questionário: Nesta última tabela eu vou ter o ID, DataDeCadastro, CodigoDaResposta e CódigoDoUsuário. Como as tabelas de Perguntas e Respostas estão relacionadas, então só precisarem mesmo do CódigoDaResposta, correto? Depois é só fazer um select com INNER JOIN e está tudo resolvido.

    Bom, então vamos agora para o VS:

    Coloquei no form uma DataGrid e nela apenas uma única coluna para inserir os templates. Estes templetes serão:
    2 Labels (um para o CódigoDaPergunta (LbCodigo) e outro para o NomeDaPergunta (LbPergunta)) e um RadioButtonList (onde associarei à TB_Respostas). Nos Labels colocarei os seguintes EditDataBind:
    LbCodigo: DataBinder.Eval(Container, "DataItem.Perg_Codigo")
    LbPergunta: DataBinder.Eval(Container, "DataItem.Perg_Nome")

    No caso do RadioButtonList, incluo nas propriedades:
    DataValueField: Resp_Codigo
    DataTextField: Resp_Nome

    A forma como irá organizar estes componentes no DataGrid já é com vc.
    Feito isto, vamos aos códigos. Como uso classes de objetos, então preciso instanciá-los:

    Code Snippet

    Imports System.Drawing

    Partial Class ADMINISTRADOR_CadQuestionario
        Inherits System.Web.UI.Page

        'Instanciando os objetos

        Private Perguntas As New Medfisio.ObjPerguntas
        Private Respostas As New Medfisio.ObjRespostas
        Private Questionario As New Medfisio.ObjQuestionarios
        Private Fn As New Funcoes.classFuncao 'Estas funções estão disponíveis no fórum

        Private Sub ChecarQuestionarios()
            'Verifica se o questionário já foi respondido pelo usuário logado.
            Dim Ds As Data.DataSet
            Ds = Questionario.ConsultarMeses(" Usu_Codigo = " & Session("ID"))
            If Ds.Tables(0).Rows(0)("MESES") > 6 Then
                PovoaGrid()
            Else
                If Ds.Tables(0).Rows.Count < 6 Then
                    Dim I As Integer
                    I = 6 - Ds.Tables(0).Rows.Count
                    Fn.Alerta("CARO USUÁRIO\n\nVOCÊ JÁ DEU SUA CONTRIBUIÇÃO À NOSSA CLÍNICA.\n\nPOR FAVOR, VOLTE AQUI DENTRO DE " & Format(I, "###,###,###,000") & " MESES PARA AVALIAR NOVAMENTE NOSSO TRABALHO.", Page)
                End If
            End If

        End Sub

        Private Sub PovoaGrid()

            'Primeiro povôo as perguntas

            Dim Ds As Data.DataSet
            Ds = Perguntas.ConsultarAvancado("")
            DataGrid1.DataSource = Ds
            DataGrid1.DataBind()



            'Depois povôo as respostas de acordo com cada pergunta, fazendo um laço no DataGrid

            Dim Gi As DataGridItem
            Dim pCodigo As WebControls.Label
            Dim pPergunta As WebControls.Label
            Dim pRespostas As WebControls.RadioButtonList

            For Each Gi In DataGrid1.Items
                pCodigo = Gi.Cells(0).FindControl("LbCodigo")
                pPergunta = Gi.Cells(0).FindControl("LbPergunta")
                pRespostas = Gi.Cells(0).FindControl("RBLRespostas")
                With DataGrid1
                    Dim Dsr As Data.DataSet
                    Dsr = Respostas.ConsultarAvancado(" R.Perg_Codigo = " & pCodigo.Text)
                    pRespostas.DataSource = Dsr
                    pRespostas.DataBind()
                End With
            Next

        End Sub

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                PovoaGrid()
            End If

        End Sub

        Private Sub VerificaOpcoes()

            'Agora verifico se todas as perguntas foram respondidas.

            'Se houver alguma sem responder altero as cores dos Labels (LbCodigo e LbPerguntas)

            Dim Gi As DataGridItem
            Dim pCodigo As WebControls.Label
            Dim pPergunta As WebControls.Label
            Dim pRespostas As WebControls.RadioButtonList
            Dim I As Integer
            I = 0
            For Each Gi In DataGrid1.Items
                pCodigo = Gi.Cells(0).FindControl("LbCodigo")
                pPergunta = Gi.Cells(0).FindControl("LbPergunta")
                pRespostas = Gi.Cells(0).FindControl("RBLRespostas")
                With DataGrid1
                    If pRespostas.SelectedIndex = -1 Then
                        pCodigo.ForeColor = Color.Red
                        pPergunta.ForeColor = Color.Red
                        I = I + 1
                    Else
                        If pRespostas.SelectedIndex > -1 Then
                            pCodigo.ForeColor = Color.FromName("#5d7b9d")
                            pPergunta.ForeColor = Color.FromName("#5d7b9d")
                        End If
                    End If
                End With
            Next

            If I = 0 Then 'Chamo o procedimento de inserts
                SalvarDados()
            Else
                If I = 1 Then 'Se faltar uma pergunta a ser respondida
                    Fn.Alerta("POR FAVOR, RESPONDA AS QUESTÕES EM DESTAQUE.\n\nAINDA FALTA RESPONDER " & Format(I, "###,###,###,000") & " QUESTÃO", Page)
                Else
                    If I > 1 Then 'Se faltar mais de uma pergunta a ser respondida
                        Fn.Alerta("POR FAVOR, RESPONDA AS QUESTÕES EM DESTAQUE.\n\nAINDA FALTAM RESPONDER " & Format(I, "###,###,###,000") & " QUESTÕES", Page)
                    End If
                End If
            End If

        End Sub

        Private Sub SalvarDados()

            'Após ser feita a verificação das peruntas, inicio o processo de inserts na tabela TB_Questionario. Mas, é claro, se todas as perguntas tiverem sido respondidas.

            Dim Gi As DataGridItem
            Dim pCodigo As WebControls.Label
            Dim pPergunta As WebControls.Label
            Dim pRespostas As WebControls.RadioButtonList

            For Each Gi In DataGrid1.Items
                pCodigo = Gi.Cells(0).FindControl("LbCodigo")
                pPergunta = Gi.Cells(0).FindControl("LbPergunta")
                pRespostas = Gi.Cells(0).FindControl("RBLRespostas")
                With DataGrid1
                    Questionario.Resposta = pRespostas.SelectedValue
                    Questionario.DataAtual = Format("dd/MM/yyyy", Now())
                    Questionario.Usuario = Session("ID")
                    Questionario.Incluir()
                End With
            Next

        End Sub

        Protected Sub BtnSalvar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnSalvar.Click

            'Este código provém de um código javascript, informado no final deste post

            If "S".Equals(Me.hidden1.Value) Then
                VerificaOpcoes()
            End If

        End Sub

        Protected Sub BtnGravar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnGravar.Click

            'Este código provém de um código javascript, informado no final deste post

            If "S".Equals(Me.hidden1.Value) Then
                VerificaOpcoes()
            End If

        End Sub

        Protected Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated

            'Este código provém de um código javascript, informado no final deste post

            If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
                e.Item.Attributes.Add("onMouseOver", "selecionaGrid(this)")
                e.Item.Attributes.Add("onMouseOut", "deSelecionaGrid(this)")
            End If

        End Sub
    End Class




    Os códigos JavaScirpt para clicar no botão BtnSalvar ou BtnGravar:

    Code Snippet

    Na paleta ToolBox / Standart arrate o componente HiddenField e mude seu ID para hidden1

    Depois copie o código java script abaixo:

        <script type="text/javascript">
        function confirma(){
            if (confirm('Deseja continuar?')){
                document.getElementById('<%=hidden1.ClientID%>').value = "S";
            }else{
                document.getElementById('<%=hidden1.ClientID%>').value = "N";
            }
        }
        </script>

    No html do botão adicionar:
    OnClick="Button1_Click" OnClientClick="confirma()"


    Código Java para passar o mouse no DataGrid:

    Code Snippet

    1º) Coloque o código JavaScript abaixo:

    <script language=javascript>
        <!--

            var cor;

            function selecionaGrid( elemento )
            {
                cor=elemento.style.backgroundColor;
                elemento.style.backgroundColor = "#ffcc66";
            }

            // Função para mudar a linha ao de-selecionar
            function deSelecionaGrid( elemento)
            {
                elemento.style.backgroundColor = cor;
            }

        //-->
        </script>

    2º) Coloque o código VB no evento ItemCreated do DataGrid:

            If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
                e.Item.Attributes.Add("onMouseOver", "selecionaGrid(this)")
                e.Item.Attributes.Add("onMouseOut", "deSelecionaGrid(this)")
            End If



    Pronto! Essa é uma forma de se fazer uma avaliação com perguntas e respostas.
    domingo, 24 de fevereiro de 2008 15:59

Todas as Respostas

  • Tente 

    <asp:FormView ID="FormView1" runat="server" AllowPaging="false"></asp:FormView>

    quinta-feira, 21 de fevereiro de 2008 19:13
  • Ja fiz isso Daniel...

    Porem se eu tenho 20 questoes ele mostra só a primeira.

    quero que mostre todas as questoes.

     

    quinta-feira, 21 de fevereiro de 2008 19:15
  • Tem como fazer um While que cria FormView com PageIndex diferentes?

    quinta-feira, 21 de fevereiro de 2008 19:21
  • Nunca tinha usado o formview, mas pelo q estou vendo vc tera q usar outro controle para fazer desss maneira que vc quer.

    quinta-feira, 21 de fevereiro de 2008 19:36
  •  

    como posso fazer? o formView foi apenas uma ideia minha
    quinta-feira, 21 de fevereiro de 2008 19:50
  • Eu usaria o Gridview ou o DataList..

    Acho q esses controles devem atender suas necessidades.

    quinta-feira, 21 de fevereiro de 2008 19:54
  • humm.. ainda nao conhecia o DataList...

    testei ele agora e axo que ele serve certinho para oq eu estou querendo...

    mas como eu pegarei o valor de cada resposta para eu colocar em parametros para gravar no BD?

     

    quinta-feira, 21 de fevereiro de 2008 20:04
  • O  formview e detailview mostram somente um registro, para vários registros você de utilizar o

    gridview , datalist ou repeater.

    sexta-feira, 22 de fevereiro de 2008 15:27
  •  

    humm intendi marcelo...

     

    Mas galera.. agora estou com outro problema...

    Agora preciso passar o valor do raidoButton selecionado pelo usuario para o paramero que sera adicionado no BD

    mas preciso passar por todas as questões. como faria isso?

    com um while no dataList? como faço? nunca usei esse componente.

    sexta-feira, 22 de fevereiro de 2008 18:34
  • Vc deve usar uam estrutura de foreach.. ai so basta criar um algoritmo simples pra reconhecer cada resposta de cada pergunta.

     

    Espero ter ajudado.. marque a resposta caso seja util.

    sexta-feira, 22 de fevereiro de 2008 18:38
  •  

    oq é estrutura de foreach?

     

    o dataList esta assim:

     

    <asp:DataList ID="DataList1" runat="server" DataSourceID="SqlDataSource1" Style="position: static"

    Width="770px">

    <ItemTemplate>

    Questao:

    <asp:Label ID="QuestaoLabel" runat="server" Text='<%# Eval("Questao") %>'></asp:Label><br />

    Respostas:<br />

    <asp:RadioButton ID="rbA" runat="server" GroupName="Resposta" Style="position: static; z-index: 100; top: 1px;"

    Text='<%# Eval("A") %>' /><br />

    <asp:RadioButton ID="rbb" runat="server" GroupName="Resposta" Style="position: static; z-index: 101;"

    Text='<%# Eval("B") %>' /><br />

    <asp:RadioButton ID="rbC" runat="server" GroupName="Resposta" Style="position: static; z-index: 102;"

    Text='<%# Eval("C") %>' /><br />

    <asp:RadioButton ID="rbD" runat="server" GroupName="Resposta" Style="position: static; z-index: 103;"

    Text='<%# Eval("D") %>' /><br />

    <asp:RadioButton ID="rbE" runat="server" GroupName="Resposta" Style="position: static"

    Text='<%# Eval("E") %>' /><br />

    <br />

    <br />

    </ItemTemplate>

    </asp:DataList>

     

     

    e quanto ao algoritimo... não tenho ideia de como fazer... uso bastante o formVew e, por exemplo, quando quero pegar um valor eu faço assim:

     

    SqlDataSource1.UpdateParameters["Resposta"].DefaultValue = ((RadioButtonList)(FormView1.FindControl("rbResposta"))).Text;

     

    mas no caso do dataList terao varios RadioButton... entao como vou definir qual ele ira pegar? como a pagina vai saber que aquele radioButton rfere-se a aquela questao?

    sexta-feira, 22 de fevereiro de 2008 18:56
  • O Foreach ele percorre linha por linha do Gridview por exemplo, ou seja cada foreach vai ser uma pergunta q vc vai esta verificando.

     

    Exemplo:

     

    foreach (Gridview item in Gridview1.Controls)

    {

    if (item is RadionButton)

    {

    //Aqui vc vai verificar qual opção esta sendo marcada

    }

    }

     

     

     

    sexta-feira, 22 de fevereiro de 2008 19:09
  • ok... entao fiz assim

     

    protected void Button1_Click(object sender, EventArgs e)

    {

    foreach (DataListItem item in DataList1.Controls)

    {

    if (item is RadioButtonList)

    {

    SqlDataSource1.InsertParameters["CodQuestao"].DefaultValue = ((Label)(DataList1.FindControl("lblCodigo"))).Text;

    SqlDataSource1.InsertParameters["Resposta"].DefaultValue = ((RadioButtonList)(DataList1.FindControl("rbResposta"))).SelectedValue;

    SqlDataSource1.Insert();

    //Aqui vc vai verificar qual opção esta sendo marcada

    }

    }

     

    }

     

     

    e ele deu erro..

    Object reference not set to an instance of an object.

    no ((Label)(DataList1.FindControl("lblCodigo"))).Text;

     

    Pq esta dando o erro? estou errando onde?

    sexta-feira, 22 de fevereiro de 2008 20:11
  • Olá  hbauer,

    Bom, eu tenho um sistema de avaliação institucional em q eu uso um DataGrid e até agora não tive problemas.
    A questão é a seguinte:

    Tenho 3 Tabelas:
    TB_Perguntas: Onde cadastro todas as perguntas sobre a instituição;
    TB_Respostas: Onde cadastro todas as respostas relacionadas à cada pergunta, assim cada pergunta poderá ter um número de respostas q será escolhida pelo aluno;
    TB_Questionário: Nesta última tabela eu vou ter o ID, DataDeCadastro, CodigoDaResposta e CódigoDoUsuário. Como as tabelas de Perguntas e Respostas estão relacionadas, então só precisarem mesmo do CódigoDaResposta, correto? Depois é só fazer um select com INNER JOIN e está tudo resolvido.

    Bom, então vamos agora para o VS:

    Coloquei no form uma DataGrid e nela apenas uma única coluna para inserir os templates. Estes templetes serão:
    2 Labels (um para o CódigoDaPergunta (LbCodigo) e outro para o NomeDaPergunta (LbPergunta)) e um RadioButtonList (onde associarei à TB_Respostas). Nos Labels colocarei os seguintes EditDataBind:
    LbCodigo: DataBinder.Eval(Container, "DataItem.Perg_Codigo")
    LbPergunta: DataBinder.Eval(Container, "DataItem.Perg_Nome")

    No caso do RadioButtonList, incluo nas propriedades:
    DataValueField: Resp_Codigo
    DataTextField: Resp_Nome

    A forma como irá organizar estes componentes no DataGrid já é com vc.
    Feito isto, vamos aos códigos. Como uso classes de objetos, então preciso instanciá-los:

    Code Snippet

    Imports System.Drawing

    Partial Class ADMINISTRADOR_CadQuestionario
        Inherits System.Web.UI.Page

        'Instanciando os objetos

        Private Perguntas As New Medfisio.ObjPerguntas
        Private Respostas As New Medfisio.ObjRespostas
        Private Questionario As New Medfisio.ObjQuestionarios
        Private Fn As New Funcoes.classFuncao 'Estas funções estão disponíveis no fórum

        Private Sub ChecarQuestionarios()
            'Verifica se o questionário já foi respondido pelo usuário logado.
            Dim Ds As Data.DataSet
            Ds = Questionario.ConsultarMeses(" Usu_Codigo = " & Session("ID"))
            If Ds.Tables(0).Rows(0)("MESES") > 6 Then
                PovoaGrid()
            Else
                If Ds.Tables(0).Rows.Count < 6 Then
                    Dim I As Integer
                    I = 6 - Ds.Tables(0).Rows.Count
                    Fn.Alerta("CARO USUÁRIO\n\nVOCÊ JÁ DEU SUA CONTRIBUIÇÃO À NOSSA CLÍNICA.\n\nPOR FAVOR, VOLTE AQUI DENTRO DE " & Format(I, "###,###,###,000") & " MESES PARA AVALIAR NOVAMENTE NOSSO TRABALHO.", Page)
                End If
            End If

        End Sub

        Private Sub PovoaGrid()

            'Primeiro povôo as perguntas

            Dim Ds As Data.DataSet
            Ds = Perguntas.ConsultarAvancado("")
            DataGrid1.DataSource = Ds
            DataGrid1.DataBind()



            'Depois povôo as respostas de acordo com cada pergunta, fazendo um laço no DataGrid

            Dim Gi As DataGridItem
            Dim pCodigo As WebControls.Label
            Dim pPergunta As WebControls.Label
            Dim pRespostas As WebControls.RadioButtonList

            For Each Gi In DataGrid1.Items
                pCodigo = Gi.Cells(0).FindControl("LbCodigo")
                pPergunta = Gi.Cells(0).FindControl("LbPergunta")
                pRespostas = Gi.Cells(0).FindControl("RBLRespostas")
                With DataGrid1
                    Dim Dsr As Data.DataSet
                    Dsr = Respostas.ConsultarAvancado(" R.Perg_Codigo = " & pCodigo.Text)
                    pRespostas.DataSource = Dsr
                    pRespostas.DataBind()
                End With
            Next

        End Sub

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            If Not IsPostBack Then
                PovoaGrid()
            End If

        End Sub

        Private Sub VerificaOpcoes()

            'Agora verifico se todas as perguntas foram respondidas.

            'Se houver alguma sem responder altero as cores dos Labels (LbCodigo e LbPerguntas)

            Dim Gi As DataGridItem
            Dim pCodigo As WebControls.Label
            Dim pPergunta As WebControls.Label
            Dim pRespostas As WebControls.RadioButtonList
            Dim I As Integer
            I = 0
            For Each Gi In DataGrid1.Items
                pCodigo = Gi.Cells(0).FindControl("LbCodigo")
                pPergunta = Gi.Cells(0).FindControl("LbPergunta")
                pRespostas = Gi.Cells(0).FindControl("RBLRespostas")
                With DataGrid1
                    If pRespostas.SelectedIndex = -1 Then
                        pCodigo.ForeColor = Color.Red
                        pPergunta.ForeColor = Color.Red
                        I = I + 1
                    Else
                        If pRespostas.SelectedIndex > -1 Then
                            pCodigo.ForeColor = Color.FromName("#5d7b9d")
                            pPergunta.ForeColor = Color.FromName("#5d7b9d")
                        End If
                    End If
                End With
            Next

            If I = 0 Then 'Chamo o procedimento de inserts
                SalvarDados()
            Else
                If I = 1 Then 'Se faltar uma pergunta a ser respondida
                    Fn.Alerta("POR FAVOR, RESPONDA AS QUESTÕES EM DESTAQUE.\n\nAINDA FALTA RESPONDER " & Format(I, "###,###,###,000") & " QUESTÃO", Page)
                Else
                    If I > 1 Then 'Se faltar mais de uma pergunta a ser respondida
                        Fn.Alerta("POR FAVOR, RESPONDA AS QUESTÕES EM DESTAQUE.\n\nAINDA FALTAM RESPONDER " & Format(I, "###,###,###,000") & " QUESTÕES", Page)
                    End If
                End If
            End If

        End Sub

        Private Sub SalvarDados()

            'Após ser feita a verificação das peruntas, inicio o processo de inserts na tabela TB_Questionario. Mas, é claro, se todas as perguntas tiverem sido respondidas.

            Dim Gi As DataGridItem
            Dim pCodigo As WebControls.Label
            Dim pPergunta As WebControls.Label
            Dim pRespostas As WebControls.RadioButtonList

            For Each Gi In DataGrid1.Items
                pCodigo = Gi.Cells(0).FindControl("LbCodigo")
                pPergunta = Gi.Cells(0).FindControl("LbPergunta")
                pRespostas = Gi.Cells(0).FindControl("RBLRespostas")
                With DataGrid1
                    Questionario.Resposta = pRespostas.SelectedValue
                    Questionario.DataAtual = Format("dd/MM/yyyy", Now())
                    Questionario.Usuario = Session("ID")
                    Questionario.Incluir()
                End With
            Next

        End Sub

        Protected Sub BtnSalvar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnSalvar.Click

            'Este código provém de um código javascript, informado no final deste post

            If "S".Equals(Me.hidden1.Value) Then
                VerificaOpcoes()
            End If

        End Sub

        Protected Sub BtnGravar_Click(ByVal sender As Object, ByVal e As System.Web.UI.ImageClickEventArgs) Handles BtnGravar.Click

            'Este código provém de um código javascript, informado no final deste post

            If "S".Equals(Me.hidden1.Value) Then
                VerificaOpcoes()
            End If

        End Sub

        Protected Sub DataGrid1_ItemCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs) Handles DataGrid1.ItemCreated

            'Este código provém de um código javascript, informado no final deste post

            If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
                e.Item.Attributes.Add("onMouseOver", "selecionaGrid(this)")
                e.Item.Attributes.Add("onMouseOut", "deSelecionaGrid(this)")
            End If

        End Sub
    End Class




    Os códigos JavaScirpt para clicar no botão BtnSalvar ou BtnGravar:

    Code Snippet

    Na paleta ToolBox / Standart arrate o componente HiddenField e mude seu ID para hidden1

    Depois copie o código java script abaixo:

        <script type="text/javascript">
        function confirma(){
            if (confirm('Deseja continuar?')){
                document.getElementById('<%=hidden1.ClientID%>').value = "S";
            }else{
                document.getElementById('<%=hidden1.ClientID%>').value = "N";
            }
        }
        </script>

    No html do botão adicionar:
    OnClick="Button1_Click" OnClientClick="confirma()"


    Código Java para passar o mouse no DataGrid:

    Code Snippet

    1º) Coloque o código JavaScript abaixo:

    <script language=javascript>
        <!--

            var cor;

            function selecionaGrid( elemento )
            {
                cor=elemento.style.backgroundColor;
                elemento.style.backgroundColor = "#ffcc66";
            }

            // Função para mudar a linha ao de-selecionar
            function deSelecionaGrid( elemento)
            {
                elemento.style.backgroundColor = cor;
            }

        //-->
        </script>

    2º) Coloque o código VB no evento ItemCreated do DataGrid:

            If e.Item.ItemType = ListItemType.AlternatingItem Or e.Item.ItemType = ListItemType.Item Then
                e.Item.Attributes.Add("onMouseOver", "selecionaGrid(this)")
                e.Item.Attributes.Add("onMouseOut", "deSelecionaGrid(this)")
            End If



    Pronto! Essa é uma forma de se fazer uma avaliação com perguntas e respostas.
    domingo, 24 de fevereiro de 2008 15:59
  • Esqueci!  As funções estão neste link:
    http://forums.microsoft.com/msdn-br/ShowPost.aspx?PostID=2023291&SiteID=21


    Espero ter ajudado!
    domingo, 24 de fevereiro de 2008 16:03
  • Verificando acima o codigo do seu html, que configura o DataList1 nao vi a existencia de um label lblCodigo.

     

    Para usar como Datalist1.FindControl o mesmo precisa estar dentro da declaração do controle.

     

    domingo, 24 de fevereiro de 2008 23:02
  •  

    Resolvi fazendo da seguinte forma....

     

     

    protected void Button1_Click(object sender, EventArgs e)

    {

    foreach (DataListItem item in this.DataList1.Controls)

    {

    // if (item is RadioButtonList)

    // {

    SqlDataSource1.InsertParameters["CodQuestao"].DefaultValue = ((Label)item.FindControl("lblCodigo")).Text;

    SqlDataSource1.InsertParameters["Resposta"].DefaultValue = ((RadioButtonList)item.FindControl("rbResposta")).SelectedValue;

    SqlDataSource1.Insert();

    //Aqui vc vai verificar qual opção esta sendo marcada

    // }

    }

     

    }

    segunda-feira, 25 de fevereiro de 2008 18:49
  • boa noite amigo ilanocf tudo bem com vc, gostaria de saber se tem como vc me enviar por e-mail o modelo ER e Fisico do questionario onde vc tem 3 tabelas, questionario, perguntas e repostas, estou com um trabalho valando 10,00 de banco de dados e não sei por onde começar

    e tenho um questionario pra fazer no banco vc poderia me dar uma ajudar envia para meu e-mail:

    spfcsandrolcf@hotmail.com

     

    te agradeço mesmo, obrigado

    Atenciosamente,

    Sandro Andrade.


    spfcsandrolcf
    segunda-feira, 18 de outubro de 2010 00:04