У меня есть четыре элемента управления диаграммой на одной странице aspx. При щелчке одной диаграммы появится следующая диаграмма, поэтому я привязал все диаграммы к событию клика. Но при щелчке на третьем графике первый график исчезает. Все остальные события щелчка работают нормально. Ниже приведен упомянутый код:
protected void Chart3_Click(object sender, ImageMapEventArgs e)
{
string pointData = e.PostBackValue.Split(';')[0];
Session["pointvalue2"] = pointData;
BindChart1();
bindchart2();
BindChart3();
bindchart4();
}
public void BindChart1()
{
DateTime fromdate = Convert.ToDateTime(txtfromdate.Text);
string sqlFormattedDate = fromdate.ToString("yyyy-MM-dd HH:mm:ss.fff");
Session["fromdate"] = sqlFormattedDate;
DateTime todate = Convert.ToDateTime(txttodate.Text);
string sqlFormattedDate1 = todate.ToString("yyyy-MM-dd HH:mm:ss.fff");
Chart1.Visible = true;
string constr = ConfigurationManager.ConnectionStrings["conn"].ConnectionString;
using (SqlConnection conn = new SqlConnection(constr))
{
conn.Open();
SqlCommand cmd = new SqlCommand("select col2 as 'col2', col1 as 'col1',col3 as 'col3' from dbo.table where APPLICATION = 'test' and col1 BETWEEN @fromdate AND @todate group by MONTH(col1),col2", conn);
cmd.Parameters.AddWithValue("@fromdate", sqlFormattedDate);
cmd.Parameters.AddWithValue("@todate", sqlFormattedDate1);
cmd.CommandType = CommandType.Text;
SqlDataReader rdr = cmd.ExecuteReader();
gvreport.DataSource = rdr;
gvreport.DataBind();
}
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("severity", typeof(string)));
dt.Columns.Add(new DataColumn("Count", typeof(int)));
dt.Columns.Add(new DataColumn("Time", typeof(int)));
foreach (GridViewRow row in gvreport.Rows)
{
DataRow dr = dt.NewRow();
dr["Count"] = Convert.ToInt32(row.Cells[0].Text);
dr["severity"] = row.Cells[1].Text;
dt.Rows.Add(dr);
}
DataTable ChartData = dt;
Chart1.DataSource = dt;
Session["dtTest"] = dt;
// Set series members names for the X and Y values
Chart1.Series["Series1"].XValueMember = "severity";
Chart1.Series["Series1"].YValueMembers = "Count";
// Data bind to the selected data source
Chart1.DataBind();
Chart1.Titles.Add("Chart");
Chart1.Series[0].ChartType = SeriesChartType.Pie;
Chart1.Series["Series1"]["PieLabelStyle"] = "Disabled";
Chart1.Series["Series1"].ToolTip = "Related_CI_Type: #VALX, Count: #VALY";
foreach (Series series in Chart1.Series)
{
series.PostBackValue = "#SERIESNAME;#VALX;#VALY";
}
Chart1.Visible = true;
}
Пожалуйста, предложите. Заранее спасибо.
@AntoineThiry Я добавил код BindChart ().
здесь нет ничего, что явно могло бы вызвать это. Фактически, вы дважды устанавливаете его Visible, чтобы быть более уверенным! (Шучу, это не имеет значения, достаточно одного раза.) Может, один из других методов случайно скрывает это - возможно, опечатку или что-то в этом роде? А как насчет Page_Load или одного из трех других методов BindChart?
Я думаю, что у нас недостаточно кода, чтобы помочь вам. Не могли бы вы поделиться кодом BindChart ()?