问题描述
新手求助,要写一个winform程序,是一个数据表,xml里规定了很多数据名,另外一个文件里有数据值,显示在界面上是名与值的一一对应关系,界面排列方式是多行多列的名值组,数据值会动态刷新,应该用什么控件来实现呢?谢谢!
解决方案
解决方案二:
多行多列貌似可以用datagridview
解决方案三:
数据不是在数据库里的,也可以用么?
解决方案四:
表格控件有很多种,vswinform工程里自带的有datagridview,web工程有datagrid和table也可以使用webbrowser用winform工程加载web控件或者用wpf或者第三方表格控件用什么控件跟你数据从哪里来的没有任何关系
解决方案五:
嗯,我试试datagridview,可是如果想美观一点呢?
解决方案六:
排列方式大概是这样的titleA1titleB2titleC3titleD4titleE5titleF6titleG7
解决方案七:
引用5楼nicolesunhe的回复:
排列方式大概是这样的titleA1titleB2titleC3titleD4titleE5titleF6titleG7
你知道什么是表格吗目测你这东西根本不是什么表格自己代码生成一些label排列一下好了
解决方案八:
用datagridview,自己在后台拼接列来显示你想要的效果呢
解决方案九:
嗯,不过是大量的这种一一对应关系,要显示给别人看,还要实时刷新数据
解决方案十:
后台拼接列,我试试。
解决方案十一:
显示XML文件的数据控件//使用GridView控件显示XML数据<asp:GridViewID="gvTitle"runat="server"AutoGenerateColumns="False"Font-Names="Tahoma"Width="100%"DataKeyNames="ID"ShowHeader="False"><HeaderStyleFont-Names="Tahoma"HorizontalAlign="Center"/><RowStyleBorderColor="#DAEEEE"BorderStyle="Ridge"BorderWidth="1px"HorizontalAlign="Center"/><Columns><asp:TemplateField><ItemTemplate><tableclass="Table"width="100%"border="0"><tr><tdbgcolor="Gray"><fontcolor="white"><ahref="AddReply.aspx?TitleID=<%#Eval("TitleID")%>"><fontcolor="white">[回复文章]</font></a><fontcolor="white">[本篇作者:<%#Eval("UserName")%>]</font></td></tr><tr><td>发帖人:<%#Eval("UserName")%>,所属区域:<%#Eval("BoardName")%></td></tr><tr><td>标 题:回复:<%=Name%></td></tr><tr><td>发信站:MRSOFTASPNET-XMLBBS(<%#Eval("CreateDate")%>),站内</td></tr><tr><td><br/> <%#Eval("Body").ToString().Replace("n","<br>")%><br/></td></tr><tr><td><hrsize="1"width="98%"/></td></tr></table></ItemTemplate><ItemStyleWidth="100%"/></asp:TemplateField></Columns></asp:GridView>//调用公共类中的GetData方法,读取XML文件中的数据privateobjectGetData(DataTabledt,stringsColumnName,stringdColumnName,stringsValue){DataRow[]rows=dt.Select(sColumnName+"='"+sValue+"'");if(rows.Length<=0)returnnull;returnrows[0][dColumnName];}//codego.net/tags/11/1///实现自定义公共类方法publicstaticDataTableGetData(stringpath,stringtableName,paramsXmlParamter[]param){//创建XmlDocument类的实例XmlDocumentxmldoc=newXmlDocument();//调用XmlDocument类中的Load()方法加载XML文件xmldoc.Load(path);//创建DataTable类型的变量dtDataTabledt=newDataTable();///获取根节点XmlNoderootNode=xmldoc.SelectSingleNode("/"+tableName+"s");//判断节点及其子节点是否为空,为空将返空值if(rootNode==null)returnnull;if(rootNode.ChildNodes.Count==0)returnnull;///创建保存记录的数据列foreach(XmlAttributeattrinrootNode.ChildNodes[0].Attributes){dt.Columns.Add(newDataColumn(attr.Name,typeof(string)));}///创建获取数据节点的XPathstringxmlPath="/"+tableName+"s/"+tableName;intoperationCount=0;StringBuilderoperation=newStringBuilder();foreach(XmlParamterpinparam){if(p.Direction==ParameterDirection.Insert||p.Direction==ParameterDirection.Update){continue;}///创建条件表达式switch(p.Direction){caseParameterDirection.Equal:operation.Append("@"+p.Name+"='"+p.Value+"'");break;caseParameterDirection.NotEqual:operation.Append("@"+p.Name+"<>'"+p.Value+"'");break;caseParameterDirection.Little:operation.Append("@"+p.Name+"<'"+p.Value+"'");break;caseParameterDirection.Great:operation.Append("@"+p.Name+">'"+p.Value+"'");break;caseParameterDirection.Like:operation.Append("contains(@"+p.Name+",'"+p.Value+"')");break;default:break;}operationCount++;operation.Append("and");}if(operationCount>0){///修正XPathoperation.Remove(operation.Length-5,5);xmlPath+="["+operation.ToString()+"]";}//获取XML节点下的所有节点XmlNodeListnodeList=xmldoc.SelectNodes(xmlPath);///遍历所有节点,并添加节点的数据foreach(XmlNodenodeinnodeList){DataRowrow=dt.NewRow();foreach(DataColumncolumnindt.Columns){///读取每一个属性row[column.ColumnName]=node.Attributes[column.ColumnName].Value;}dt.Rows.Add(row);}returndt;}