2013-12-18 2 views
1

Я пытаюсь получить диаграмму asp.net, и это легенда, позволяющая мне открыть другую страницу на другой вкладке, передавая значения части диаграммы, которую я нажал с этим. Я смог заставить его открыть еще одну вкладку, щелкнув по диаграмме, выполнив следующее, но не передал данные.Рисунок ASP.NET Щелкните, перейдите данные и в новую вкладку

Chart2.Series[0].LegendUrl = "chartdetails.aspx"; 
Chart2.Series[0].Url = "chartdetails.aspx"; 
Chart2.Series[0].LegendMapAreaAttributes="target=\"_blank\""; 
Chart2.Series[0].LegendPostBackValue = "#VALY-#VALX"; 
Chart2.Series[0].MapAreaAttributes="target=\"_blank\""; 
Chart2.Series[0].PostBackValue = "#VALY-#VALX"; 

Если я уйду из URL-адреса и mapareaattributes я могу затем заставить его перейти к OnClick, где я смог получить данные, поместить его в переменной сеанса и использовать Reponse.Redirect, чтобы открыть новую страницу где он видит данные переменной сеанса, однако он не открывается на другой вкладке, он открывается на той же вкладке.

Chart2.Series[0].LegendPostBackValue = "#VALY-#VALX"; 
Chart2.Series[0].PostBackValue = "#VALY-#VALX"; 

protected void Chart2_Click(object sender, ImageMapEventArgs e) 
{ 
    HttpContext.Current.Session["VAL"] = e.PostBackValue; 
    Response.Redirect("chartdetails.aspx", false); 
} 

Как я могу заставить его сделать то и другое? Есть ли способ отклика Response.Redirect открыть новую вкладку? Некоторые исследования заставляют меня поверить, что это не так. Есть ли способ заставить запускать событие onclick на стороне сервера, поэтому я могу установить переменную session и chart.series.url для запуска после щелчка на стороне сервера, чтобы переменная сеанса была установлена ​​до того, как я открою новую вкладку ?

Я чувствую, что это может быть случай «Я не могу иметь свой торт и съесть его тоже».

ответ

1

Как оказалось, у меня есть мой торт и есть его тоже. Если я установил url, postbackvalues ​​и legendmapareaattributes в моей странице_Load и настроил клик для диаграммы, чтобы поместить PostBackValue в переменную сеанса, когда вы нажимаете на диаграмму, он сохраняет значение в переменной сеанса, указанное в PostBackValue Серия диаграммы. Затем он открывается в новой вкладке chartdetails.aspx, где я могу получить доступ к информации из переменной сеанса.

Chart2.Series[0].LegendUrl = "chartdetails.aspx"; 
Chart2.Series[0].LabelUrl = "chartdetails.aspx"; 
Chart2.Series[0].Url = "chartdetails.aspx"; 

Chart2.Series[0].LegendPostBackValue = "#VALY-#VALX"; 
Chart2.Series[0].LabelPostBackValue = "#VALY-#VALX"; 
Chart2.Series[0].PostBackValue = "#VALY-#VALX"; 

Chart2.Series[0].LegendMapAreaAttributes = "target=\"_blank\""; 
Chart2.Series[0].LabelMapAreaAttributes = "target=\"_blank\""; 
Chart2.Series[0].MapAreaAttributes="target=\"_blank\""; 

protected void Chart2_Click(object sender, ImageMapEventArgs e) 
{ 
    HttpContext.Current.Session["VAL"] = e.PostBackValue;     
} 
+0

Вы также можете установить параметры Url и MapAreaAttributes на самих сериях. Я сделал это при создании сериала и поэтому не должен был использовать переменную сеанса в событии click. –

Смежные вопросы