设置DevExpress的gridcontrol的数据并显示
程序员文章站
2022-06-09 12:04:39
...
使用了devExpress的RibbonForm,里面加了一个gridcontrol用来实现数据的列表显示,按照网上的说法通过Run Designer先添加列名,但是这种方式我的数据插不进去,不知道为啥,也懒得找原因了,为了后期该列名啥的方便就直接代码中实现了,通过InitDt实现列名添加,注意需要 using System.Data; 通过this.add_data(dt, item)添加数据
在RibbonForm类中初始表格,使用replace是由于数据中有这种大括号包着的数据{****},导致gridcontrol中只显示{,剩余的显示不全
我还加了一个按钮,由于数据是实时在网上爬的,每按一次按钮就获取新的数据进行处理
namespace test
{
public partial class RibbonForm1 : DevExpress.XtraBars.Ribbon.RibbonForm
{
JArray data = null;
string jsondata = null;
DataTable dt = new DataTable();
DataTable dt_Other = new DataTable();
public RibbonForm1()
{
InitializeComponent();
dt = this.InitDt(dt);
dt_Other = this.InitDt(dt_Other);
}
private DataTable InitDt(DataTable dt)
{
dt.Columns.Add("IP", typeof(string));
dt.Columns.Add("Port", typeof(string));
dt.Columns.Add("OS", typeof(string));
·
·
·
·
dt.Columns.Add("Own_Name", typeof(string));
dt.Columns.Add("Own_Email", typeof(string));
dt.Columns.Add("Description", typeof(string));
return dt;
}
//向table中传数据,由于用的前面文章提到的json解析出来的数据,是JToken格式的
private DataTable add_data(DataTable dt, JToken show_data)
{
dt.Rows.Add(new object[] {show_data["***"],show_data["***"],show_data["***"],show_data["***"].ToString().Replace("{","").Replace("}","").Replace("\r\n","").Trim(),show_data["Country"],show_data["City"]});
// 使用replace是由于数据中有这种大括号包着的数据{****},导致gridcontrol中只显示{ 剩余的显示不全
return dt;
}
private void handle_data(JArray data)
{
foreach (JObject item in data)
{
string[] location = null;
location = Map_ip(item["ip地址"].ToString()); //调用前面文章中https://blog.csdn.net/u010458948/article/details/101508804提到的ip与地理位置转换
var newJsonObj = JObject.Parse("{\"Country\":\"" + location[0] +"\",\"City\":\"" + location[1] + "\",\"Continent\":\"" + location[2] + "\"}");
item.Add(newJsonObj.Properties());
dt = this.add_data(dt, item);
}
}
private void barButtonItem1_ItemClick(object sender, ItemClickEventArgs e)
{
Spider spider = new Spider(); //前面文章https://blog.csdn.net/u010458948/article/details/101452008的类,需要使用using 前面文章的namespace;
jsondata = spider.Get_detail(); //前面文章的方法
JArray jsonServers = spider.Parse_data(jsondata);
dt.Rows.Clear(); //每次点击都要重新更新表格,因此先清空
dt_Other.Rows.Clear();
gridControl1.DataSource = dt;
handle_data(jsonServers);
}
}
}
总结一下gridcontrol显示就是要先在类前面声明DataTable,然后在界面RibbinForm方法中初始化table,然后在按钮控制显示时设置gridControl1.DataSource = dt;绑定数据源,最后在处理数据的过程中将数据一条条添加到表格中即可。
推荐阅读
-
DevExpress的TreeList实现显示本地文件目录并自定义右键实现删除与重命名文件
-
DevExpress的TreeList怎样设置数据源使其显示成单列树形结构
-
读取数据库的数据并整合成3D饼图在jsp中显示详解
-
C#实现读取DataSet数据并显示在ListView控件中的方法
-
c# DevExpress gridcontrol日期行的显示格式设置
-
DevExpress的GridControl的使用以及怎样添加列和绑定数据源
-
详解利用Dockerfile构建mysql镜像并实现数据的初始化及权限设置
-
php下将图片以二进制存入mysql数据库中并显示的实现代码
-
PHP上传图片到数据库并显示的实例代码
-
vue 修改 data 数据问题并实时显示的方法