刷新GridView数据

时间:2012-09-13 18:31:07

标签: c# jquery webforms

在我第一次加载aspx页面时,我的GridView已填满。

在我的ASPX页面中,我处理单选按钮上的点击事件

    $("#ctl00_contentConteudo_rbBuscas_1").click(function () {
        $.get("../Gerenciar/ListaUsuarioProvisorio.aspx?Documentacao=s&r=" + Math.random(2), {}, function (data) {                
        });
    });

因此,单击我的单选按钮时,此强制将再次传入我的页面。

ASPX

<div id="infoGrid" runat="server">
    <cc1:GridView ID="grdImoveis" CssClass="StyleGrid" Width="100%" runat="server" ShowHeader="false"
        AutoGenerateColumns="False" DataSourceID="dsGrid" BorderWidth="0px" GridLines="None"
        AllowPaging="True" EnableModelValidation="True" >
        <AlternatingRowStyle BackColor="White" CssClass="EstiloDalinhaAlternativaGrid" HorizontalAlign="Center" />
        <RowStyle CssClass="EstiloDalinhaGrid" HorizontalAlign="Center" />
        <Columns>
            <asp:BoundField HeaderText="Nome" DataField="NomeCompleto" />
            <asp:BoundField HeaderText="Cargo" DataField="DescricaoCargo1" />
            <asp:BoundField HeaderText="Data Cadastro" DataField="DataHora" />
            <asp:TemplateField ControlStyle-CssClass="acoes_lista_imovel" HeaderText="Curso">
                <ItemTemplate>
                    <div class="acoes_lista_imovel">
                        <%# montaIcones(Eval("Usuario_Id").ToString())%>
                    </div>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>
    </cc1:GridView>
    <asp:SqlDataSource ID="dsGrid" runat="server"></asp:SqlDataSource>
</div>

代码背后

在我的代码中,我的PageLoad只需调用我的CarregaLista方法即可填充GridView

protected void CarregaLista()
        {            
                string documentacao = Request.QueryString["Documentacao"].ToString();

                if (documentacao.Equals("s"))
                {
                    string select = string.Empty;
                    select += "SELECT top 10 San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, San_Usuario.DescricaoCargo1, "
                        + "CONVERT(varchar, San_Usuario.DataHora, 103) AS DataHora "
                        + "FROM San_Usuario "
                        + "JOIN San_Credenciada "
                        + "ON San_Usuario.Credenciada_Id = San_Credenciada.Credenciada_Id "
                        + "WHERE San_Usuario.Excluido = 0 "                        
                        + "GROUP BY San_Credenciada.Apelido, San_Usuario.NomeCompleto, San_Usuario.Usuario_Id, "
                        + "San_Usuario.DescricaoCargo1, San_Usuario.DataHora "
                        + "ORDER BY San_Usuario.DataHora ASC ";

                    dsGrid.ConnectionString = c.Con;
                    dsGrid.SelectCommand = select;
                    dsGrid.DataBind();
                    grdImoveis.DataBind();
                    dsGrid.Dispose();
                }
            }
}

WITH UPDATE PANEL

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
    <ContentTemplate>
                <asp:RadioButton ID="RadioButton2" runat="server" Text="Curso Básico Netimóveis" />
                <asp:RadioButton ID="RadioButton1" runat="server" Text="Buscar Lista de Presença" />
                <asp:RadioButton ID="rdBuscas" runat="server" OnCheckedChanged="Click" Text="Curso Documentação Imobiliária" />
        <cc1:GridView ID="grdImoveis" CssClass="StyleGrid" Width="100%" runat="server" ShowHeader="false"
            AutoGenerateColumns="False" DataSourceID="dsGrid" BorderWidth="0px" GridLines="None"
            AllowPaging="True" EnableModelValidation="True" >
            <AlternatingRowStyle BackColor="White" CssClass="EstiloDalinhaAlternativaGrid" HorizontalAlign="Center" />
            <RowStyle CssClass="EstiloDalinhaGrid" HorizontalAlign="Center" />
            <Columns>
                <asp:BoundField HeaderText="Nome" DataField="NomeCompleto" />
                <asp:BoundField HeaderText="Cargo" DataField="DescricaoCargo1" />
                <asp:BoundField HeaderText="Data Cadastro" DataField="DataHora" />
                <asp:TemplateField ControlStyle-CssClass="acoes_lista_imovel" HeaderText="Curso">
                    <ItemTemplate>
                        <div class="acoes_lista_imovel">
                            <%# montaIcones(Eval("Usuario_Id").ToString())%>
                        </div>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </cc1:GridView>

        <asp:SqlDataSource ID="dsGrid" runat="server"></asp:SqlDataSource>
        </ContentTemplate>
        <Triggers>
            <asp:AsyncPostBackTrigger ControlID="rdBuscas" />
        </Triggers>        
        </asp:UpdatePanel>

我的问题是我的GridView不会使用此查询刷新。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您可以使用Ajax治疗 - 基于UpdatePanelTriggersUpdateMode="Condition"

您可以使用此代码(在触发器上调整GridView和单选按钮的ID)

<asp:ScriptManager ID="ScriptManager1" runat="server" >
</asp:ScriptManager>

<asp:UpdatePanel ID="UpdatePanel1" runat="server" ModeUpdate="Conditional">
    <ContentTemplate>

        <asp:GridView ID="GridView1" runat="server">
            <Columns>
                  ......
            </Columns>
        </asp:GridView>


       <asp:RadioButton ...../> 

    </ContentTemplate>


    <Triggers>
          <asp:AsyncPostBackTrigger ControlID="YourRadioButtonId" EventName="Click" />
    </Triggers>
</asp:UpdatePanel>