response.redirect后可以进行aspx网格绑定吗?

问题描述 投票:0回答:1

我的网站中有一个页面显示地图,并且有一个下拉菜单,单击下拉菜单中的选项时,它会在不同位置显示不同的图钉。这部分工作正常,我可以通过response.redirect() 重新加载同一页面中具有不同引脚的部分来完成此操作。

现在在这张地图下方,我确实有一个网格视图,它应该在更改下拉选项时填充位置地址和联系人。但不幸的是,gridview 没有显示,但我在调试时检查过,它正在填充数据。

这是我的 aspx gridview 代码(其可见性设置为 false,因此它不会显示,直到并且除非在地图下拉列表中选择了选项):

<asp:GridView ID="grdMapData" runat="server" class="table table-striped" AlternatingRowStyle-BackColor="#eaeaea" ShowHeader="true"
                                    EmptyDataRowStyle-HorizontalAlign="Center" EmptyDataRowStyle-ForeColor="Red" OnRowCreated="grdMapData_RowCreated"
                                    OnRowDataBound="grdMapData_RowDataBound" ShowHeaderWhenEmpty="true" EmptyDataText="No Data Found !!"
                                    AutoGenerateColumns="false" Visible="false">

                                    <Columns>
                                        <asp:TemplateField HeaderText="Sl. No" ItemStyle-Width="4%" ItemStyle-HorizontalAlign="Center"
                                            HeaderStyle-CssClass="gridHeader" HeaderStyle-HorizontalAlign="Center" ItemStyle-CssClass="gridRow">
                                            <ItemTemplate>
                                                <asp:Label ID="lblSno" runat="server" Enabled="false" Text="<%#Container.DataItemIndex+1%>"></asp:Label>                                                
                                            </ItemTemplate>
                                        </asp:TemplateField>

                                        <asp:TemplateField HeaderText="District Name" ItemStyle-Width="20%"
                                            ItemStyle-CssClass="gridRow" HeaderStyle-HorizontalAlign="Center" HeaderStyle-CssClass="gridHeader"
                                            ItemStyle-HorizontalAlign="Center">
                                            <ItemTemplate>
                                                <asp:Label ID="lblDistName" runat="server" CssClass="required" Text='<%#Eval("DSM_DISTRICT_DESCRIPTION") %>'></asp:Label>
                                            </ItemTemplate>
                                        </asp:TemplateField>


                                        <asp:TemplateField HeaderText="Address" ItemStyle-Width="30%"
                                            ItemStyle-CssClass="gridRow" HeaderStyle-HorizontalAlign="Center" HeaderStyle-CssClass="gridHeader"
                                            ItemStyle-HorizontalAlign="Center">
                                            <ItemTemplate>
                                                <asp:Label ID="lblAddress" runat="server" CssClass="required" Text='<%#Eval("ADDRESS") %>'></asp:Label>
                                            </ItemTemplate>
                                        </asp:TemplateField>

                                    </Columns>
                                </asp:GridView>

前面示例中的地图点代码(请注意,除了 html 中的 href 之外,没有其他方法可以显示地图点,但 href 不适用于 asp dropdownlist):

<section id="gm_offices_id">
                                             <!-- chittoor -->
                                            <div id="chittoor" class="msme_ap_map_icon msme_ap_map_icon_chittor" runat="server">
                                                <img src="../Assets/Images/location_icon.svg" alt="" id="img-chitoor">
                                                <div id="box-chi" class="district_box">
                                                    <p>District Industries Centre - Chittoor</p>
                                                    <p>
                                                        House no.113, SBI COLONY 2nd Street, Puttur road, Chittoor, 517001
                                                    </p>
                                                </div>
                                            </div>

                                            <!-- tirupati -->
                                            <div id="tirupati_1" class="msme_ap_map_icon msme_ap_map_icon_tirupati">
                                                <img src="../Assets/Images/location_icon.svg" alt="" id="img-tirupati">
                                                <div id="box-chi" class="district_box">
                                                    <p>District Industries Centre - Tirupati</p>
                                                    <p>
                                                        Room No, 506 to 514, A-Block, Collectorate, Tirupati
                                                    </p>
                                                </div>
                                            </div>
</section>

这是在下拉选择时调用的代码:

protected void ddlCategory_OnSelectedIndexChanged(object sender, EventArgs e)
        {
            if(ddlMapCategory.SelectedValue == "DIC")
            {
                Response.Redirect("AP_State_Map.aspx#gm_offices_id", false);
                bindMapData(ddlMapCategory.SelectedValue);
                grdMapData.Visible = true;
            }
            else if (ddlMapCategory.SelectedValue == "MSME-PARKS")
            {
                Response.Redirect("AP_State_Map.aspx#msme_parks", false);
                bindMapData(ddlMapCategory.SelectedValue);
                grdMapData.Visible = true;
            }
            else if (ddlMapCategory.SelectedValue == "ID")
            {
                Response.Redirect("AP_State_Map.aspx#id_project", false);
                bindMapData(ddlMapCategory.SelectedValue);
                grdMapData.Visible = true;
            }
            else
            {
                Response.Redirect("AP_State_Map.aspx#clusters_id", false);
                bindMapData(ddlMapCategory.SelectedValue);
                grdMapData.Visible = true;
            }

        }

Gridview绑定数据方法:

protected void bindMapData(string mapCat)
        {
            grdMapData.Visible = true;
            DataTable l_dt = new DataTable();

            object[] obj = { mapCat, null };
            DataSet ds = objBO.Get_MSME_Map_Data(obj);
            DataTable dt = ds.Tables[0];
            grdMapData.DataSource = dt;
            grdMapData.DataBind();
        }

我还想告诉您,这是网站的公共部分,无需任何登录,我们不会捕获任何用户数据来访问它。 对不起我的英语。预先感谢您帮助我。

c# asp.net
1个回答
1
投票

一旦您重定向用户,页面就会消失。 他们现在已导航到新页面。 无论您尝试向用户显示什么数据,都将其显示在“那个”页面上。 (即使它是“同一页面”,它也是该 URL 的全新导航。) 加载

Page_Load

时,您需要在

AP_State_Map.aspx
处理程序中绑定该数据。 您可以通过在查询字符串上发送该值来知道要绑定哪些数据。 例如:
Response.Redirect("AP_State_Map.aspx?value=DIC#gm_offices_id", false);

Page_Load

中时,您将从查询字符串中获取该值:

var selectedValue = Request.QueryString["value"];
bindMapData(selectedValue);
grdMapData.Visible = true;

在相同的 
Page_Load

逻辑中,您还希望处理当指定的值为空或不是逻辑支持的值时要执行的操作。

    

© www.soinside.com 2019 - 2024. All rights reserved.