gpt4 book ai didi

javascript - 从asp.net图表控件打开一个新窗口

转载 作者:行者123 更新时间:2023-12-04 01:07:38 26 4
gpt4 key购买 nike

我正在从asp.net图表控件中触发JS window.open命令,但是没有被触发。

以下是将构建金字塔的.aspx页的代码。

<div>

<asp:Chart ID="Chart1" runat="server" Height="416px" ImageType="Jpeg"
Width="525px" IsMapAreaAttributesEncoded="True" Palette="None"
PaletteCustomColors="Navy; DarkBlue; DarkBlue; DarkBlue; DarkBlue; DarkBlue; DarkBlue"
TextAntiAliasingQuality="SystemDefault" ImageStorageMode="UseImageLocation">
<Series>
<asp:Series BackGradientStyle="DiagonalRight" BackSecondaryColor="Black"
BorderColor="Black" ChartType="Pyramid" Color="Transparent"
CustomProperties="Pyramid3DRotationAngle=8, PyramidMinPointHeight=60, PyramidPointGap=3, PyramidLabelStyle=Inside"
Font="Verdana, 8pt, style=Bold" IsValueShownAsLabel="True" Name="Series1"
ShadowColor="Black" LabelForeColor="White" Palette="Grayscale">
<Points>
<asp:DataPoint CustomProperties="PyramidInsideLabelAlignment=Top"
Label=" xxxxxx Column-1"
ToolTip="1111" YValues="40"/>
<asp:DataPoint CustomProperties="PyramidInsideLabelAlignment=Top"
Label="xxxxxx Column-2" MapAreaAttributes="" ToolTip="2222"
YValues="40" />
<asp:DataPoint CustomProperties="PyramidInsideLabelAlignment=Top"
Label="xxxxxx Column-3" MapAreaAttributes="" ToolTip="" Url=""
YValues="40" />
<asp:DataPoint CustomProperties="PyramidInsideLabelAlignment=Top"
Label=" xxxxxx Col4" MapAreaAttributes="" ToolTip="" Url=""
YValues="40" />
<asp:DataPoint
Label=" xxxxxx Col5" MapAreaAttributes="" ToolTip="" Url=""
YValues="40" />
<asp:DataPoint Label=" xxxxxx Col6" MapAreaAttributes="onClick='javascript:OpenPage();'" ToolTip="" Url=""
YValues="40" />
<asp:DataPoint CustomProperties="PyramidInsideLabelAlignment=Bottom"
Label="xx Col7" MapAreaAttributes="" ToolTip="" Url="" YValues="40" />
</Points>
</asp:Series>
</Series>
<ChartAreas>
<asp:ChartArea Name="ChartArea1">
<Area3DStyle Enable3D="True" IsRightAngleAxes="False" Perspective="30"
Inclination="45" PointGapDepth="1000" Rotation="60" />
</asp:ChartArea>
</ChartAreas>
</asp:Chart>

</div>

下面是后面的代码;
protected void Page_Load(object sender, EventArgs e)
{
string statusClicked = string.Empty;
Series series = new Series("MySeries");
series.ChartType = SeriesChartType.Pyramid;
series.BorderWidth = 3;

DataTable dt = new DataTable();

dt.Columns.Add("Column-1", typeof(int));
dt.Columns.Add("Column-2", typeof(int));
dt.Columns.Add("Column-3.", typeof(int));
dt.Columns.Add("Column-4", typeof(int));
dt.Columns.Add("Column-5", typeof(int));
dt.Columns.Add("Column-6", typeof(int));
dt.Columns.Add("Column-7", typeof(int));

dt.Rows.Add(1400, 2240, 7660, 3410, 15, 4, 9);
int colCount = dt.Columns.Count;
List<string> xaxis = new List<string>();
List<double> yaxis = new List<double>();

Chart1.Series[0].Points[0].MapAreaAttributes = "onclick=\"javascript:window.open('http://www.google.com');\"";

}

理想情况下,单击图表中的任何系列,都应打开google链接,并且分配的状态应该是从代码中获得的状态。但是代码永远行不通。

它打开的URL类似于:
http://localhost:1450/javascript%3avar+win%3dwindow.open('http%3a%2f%2fwww.google.com%3fstatus%3dTestStatus')%3b

在这里您可以看到状态为“测试状态”,因此应打开的链接为 http://www.google.com/?status=TestStatus

注意:labelURL属性只能使用URL。

最佳答案

未经测试,但是您可以使用MapAreaAttributes。
就像是;

Chart1.Series[0].Points[i].LabelUrl = "http://www.google.co.in?status=" + dt.Columns[i].ColumnName.ToString();
series.MapAreaAttributes = "target=\"_blank\"";

或者您可以执行类似的操作(不带查询字符串);
        foreach (Series series in Chart1.Series)
{
series.MapAreaAttributes = "onclick=\"javascript:window.open('http://www.google.com');\"";
}

Here是有关可帮助您传递querystring参数的关键字的更多信息。

对于您的情况,还可以将MapAreaAttributes用于DataPointCollection
Chart1.Series[0].Points[i].MapAreaAttributes = "onclick=\"javascript:window.open('http://www.google.co.in?status=" + dtSample.Columns[4].ColumnName.ToString() + "');\"";

关于javascript - 从asp.net图表控件打开一个新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7513226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com