我的网站中有一个页面显示地图,并且有一个下拉菜单,单击下拉菜单中的选项时,它会在不同位置显示不同的图钉。这部分工作正常,我可以通过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();
}
我还想告诉您,这是网站的公共部分,无需任何登录,我们不会捕获任何用户数据来访问它。 对不起我的英语。预先感谢您帮助我。
一旦您重定向用户,页面就会消失。 他们现在已导航到新页面。 无论您尝试向用户显示什么数据,都将其显示在“那个”页面上。 (即使它是“同一页面”,它也是该 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
逻辑中,您还希望处理当指定的值为空或不是逻辑支持的值时要执行的操作。