当前位置: 首页 > 知识库问答 >
问题:

高图数据网格视图上的每一行显示不同的数据按钮点击打开模式

那开济
2023-03-14

我在ASP. NET中有一个网格视图,其中包含每行的asp: templatefield按钮。在按钮上,我有一个数据目标属性,它是一个模态。

在gridview行绑定中,我获取行的ID并调用方法SerializedBoxChart(),该方法放入行的ID并检索数据。然而,它看起来像是在每一行中循环,最后是gridview每一行的最后一行数据。当我点击按钮时,它打开带有最终行数据的模式。我试图根据measureID为每一行分配数据,当您单击按钮时,它会打开该行数据。

我有一种感觉,它与容器上的冲突ID有关,当高图表javascript运行脚本并将其放置在div中,但不知道如何解决这个问题。

<asp:TemplateField HeaderText="AvgDaysTaken" SortExpression="AvgDaysTaken">
<ItemTemplate>
<asp:Button type="button" runat="server" id="AvgDaysTaken" class="btn btn-primary" data-toggle="modal" data-target="#myBoxPlot"  Text='<%# Eval("AvgDaysTaken") %>' />
</ItemTemplate>
</asp:TemplateField>

模式代码,其中包含一个带有ID的div容器,图形将放置在该容器中

<div class="container">
   <!-- Modal -->
   <div class="modal fade" id="myBoxPlot" role="dialog">
      <div class="modal-dialog">
         <!-- Modal content-->
         <div class="modal-content">
            <div class="modal-header">
               <button type="button" class="close" data-dismiss="modal">&times;</button>
            </div>
            <div class="modal-body">
               <div id="container" >
               </div>
            </div>
            <div class="modal-footer">
               <button type="button" id="close" class="btn btn-default" data-dismiss="modal">Close</button>
            </div>
         </div>
      </div>
   </div>
</div>

使用c获取方框图的数据#

 public void SerializedBoxChart(int measureid)
{

    string connectionstring = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
    SqlConnection cn = new SqlConnection(connectionstring);
    SqlCommand cmd = new SqlCommand("[dbo].so", cn);
    cmd.Parameters.AddWithValue("@SubTeamNo", SubTeam);
    cmd.Parameters.AddWithValue("@Month", Month);
    cmd.Parameters.AddWithValue("@Year", Year);
    cmd.Parameters.AddWithValue("@ReportPeriod", ReportPeriod);
    cmd.Parameters.AddWithValue("@controlID", ControlID);
    cmd.Parameters.AddWithValue("@PracticeGroupID", PracticeGroup);
    cmd.Parameters.AddWithValue("@Instructor", SearchInput.Text);
    cmd.Parameters.AddWithValue("@MeasureID", measureid) ;
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    cmd.CommandType = CommandType.StoredProcedure;
    cn.Open();
    SqlDataReader reader = cmd.ExecuteReader();


    var chartValues = new List<string>();
    var chartValues2 = new List<string>();

    if (reader.HasRows)
    {
        while (reader.Read())
        {
            string name = reader.GetString(0);

            if (name != "Total")
            {


                string str = reader["ChartData"].ToString();
                string a = reader["MeasureDesc"].ToString();

                string[] strList = str.Split(',');

                // convert it in json
                dataStr = JsonConvert.SerializeObject(strList, Formatting.None);

                hiddenvariable.Value = dataStr;
                hiddenvariablemeasuredesc.Value = a;

                chartValues.Clear();
            }
        }
    }

    else
    {

    }

    reader.Close(); // close the reader
    cn.Close();



}

用于创建框图的javascript:

function CreateBoxPlot() {


    var hv = $('#hiddenvariable').val();
console.log(hv);
var hvmeasure = $('#hiddenvariablemeasuredesc').val();
console.log(hvmeasure);

var chart;
var titleText = hvmeasure;
var subTitleText = 'Test Chart Subtitle';
var type = 'boxplot';
var data = [JSON.parse(hv).map(item => parseInt(item))]; //Doesnt work in IE

var $container = $('<div>').appendTo(document.body);

$(function () {
    $('#container').highcharts({
        chart: { type: type, inverted: true},
        title: { text: hvmeasure },
        subtitle: { text: subTitleText },
        renderTo: $container[0],
        legend: { enabled: false },
        tooltip: {
            shared: true,
            crosshairs: true
        },
        plotOptions: {
            series: {
                pointWidth: 50
            }
        },

        xAxis: {
            visible: false

        },
        yAxis: {

            visible: true,
            title: {
                text: 'Values'
            },

            plotLines: [{
                value: 80,
                color: 'red',
                width: 2

            }]

        }
    });

    chart = $('#container').highcharts();
    chart.addSeries({ data: data });

 });
}

共有1个答案

卫才
2023-03-14

你解决过这个问题吗?

我猜你没有发布所有的代码,或者你编辑了它,遗漏了信息。

SerializedBoxChart方法中,您创建两(2)个List

我怀疑这是你试图保留的数据。

而不是将此信息保存在临时列表中

如果您的HTML页面上有存储位置,如listView1和listView2,则您的代码如下:

public void SerializedBoxChart(int measureid) {

    var list1 = (ListView)FindControl("listView1");
    var list2 = (ListView)FindControl("listView2");

    if ((list1 != null) && (list2 != null)) {
        string connectionstring = ConfigurationManager.ConnectionStrings["DBConnection"].ConnectionString;
        var chartValues = new List<string>();
        var chartValues2 = new List<string>();
        using (var cmd = new SqlCommand("[dbo].cr_fe_KPI_RPT_Summary", new SqlConnection(connectionstring))) {
            cmd.Parameters.AddWithValue("@SubTeamNo", SubTeam);
            cmd.Parameters.AddWithValue("@Month", Month);
            cmd.Parameters.AddWithValue("@Year", Year);
            cmd.Parameters.AddWithValue("@ReportPeriod", ReportPeriod);
            cmd.Parameters.AddWithValue("@controlID", ControlID);
            cmd.Parameters.AddWithValue("@PracticeGroupID", PracticeGroup);
            cmd.Parameters.AddWithValue("@Instructor", SearchInput.Text);
            cmd.Parameters.AddWithValue("@MeasureID", measureid);
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Connection.Open();
            using (var reader = cmd.ExecuteReader()) {
                if (reader.HasRows) {
                    while (reader.Read()) {
                        string name = reader.GetString(0);
                        if (name != "Total") {
                            string str = reader["ChartData"].ToString();
                            string a = reader["MeasureDesc"].ToString();

                            chartValues.Add(str);
                            chartValues2.Add(a);

                            string[] strList = str.Split(',');

                            // convert it in json
                            var dataStr = JsonConvert.SerializeObject(strList, Formatting.None);

                            hiddenvariable.Value = dataStr;
                            hiddenvariablemeasuredesc.Value = a;

                        }
                    }
                }
                // reader.Close(); don't need to close in a USING statement
            }
        }
        list1.DataSource = chartValues;
        list1.DataBind();
        list2.DataSource = chartValues2;
        list2.DataBind();
    }
}

 类似资料:
  • 我现在正在使用UITableView,我所拥有的是 我的类.h @ interface my class:UIViewController { } @property (strong,strong)ui label * name; @属性(strong,strong)UILabel*add; 和 我的班级.m -(NSInteger)tableView:(UITableView*)atableVi

  • 我在sencha touch 2中创建了一个索引页面,在其中我在容器内创建了一些自定义按钮 这些按钮看起来像这个 单击橙色按钮后,我想显示一个新视图。 我尝试了ext.Navigation view,但它不是我想要的。我必须在按钮上添加一个事件监听器,还是我必须做一些其他事情请建议 我在controller文件夹main.js中创建了一个新控制器 还有我的新视图Eligibelity.js代码 还

  • 我有一组二维“原始”数据点,以数组的形式,即: 数据表示二维空间中的圆形“质量分布”图。x-y坐标表示数据点的x-y分布,每个x-y坐标处的值是在该数据点处测量的质量/强度。 我想绘制这个数据,只使用Python(仅在积分x-y交叉点),就像下面的图一样,但是使用我自己的x-y散点图数据,而不是绘制2D线/函数。 此外,我想结合另一个SO问题中的“指定点大小”逻辑,这允许我在“每个样本/值”的基础

  • 我使用Laravel框架作为后端API,在前端使用一些blade PHP文件,特别是用于/admin路由中的身份验证和管理面板。在/admin中,我将显示所有注册用户的列表以及旁边的按钮。(此页面仅对管理员列中的值设置为true的用户可见)。我想切换用户的管理员状态,通过单击用户名旁边的按钮来升级或降级用户。为此,我尝试使用带有get的表单提交方法。我在UserController中定义了如下方法

  • 嗨,我有问题打开新窗口fxml视图后单击按钮。主窗口显示,在主视图中我有六个按钮。我想我点击按钮打开新窗口。但是,当我单击按钮时,显示异常: java.lang.Reflect.InvocationTargetException 我尝试在internet上找到的不同解决方案,但显示此异常。主要是尝试在切换函数中修改代码,负责显示新视图。我认为问题出在这里或者是在主类中的代码。

  • pre { white-space: pre-wrap; } 数据网格(datagrid)的虚拟滚动特性可以用来显示大数量的记录而不需要分页。 当滚动垂直滚动条时,数据网格(datagrid)执行 ajax 请求来加载和刷新现有的记录。 整个刷新的行为过程是平稳的没有闪烁。 在本教程中,我们将创建一个数据网格(datagrid),并运用虚拟滚动特性从服务器加载数据。 创建数据网格(DataGrid