我有一个DataView,它已按某种顺序排序.如何使用索引检索值.
像这样的东西:
if(dv.rows[0]["name"]=="xxx")
{
--- do something ---
}
else
--- something else ---
Run Code Online (Sandbox Code Playgroud) 我知道如何根据用户在单个文本框中的输入过滤数据:
FilterDataView.RowFilter = txtFilter.Text;
但是,您将如何根据多个字段的多个用户输入过滤数据.基本上过滤器将充当"搜索"功能.
bool Res = false;
DataView DV = new DataView(DT);
DV.RowFilter = "Trim(Originator)='"+OrginatorName.Trim()+"'";
if (DV.Count > 0)
{
Res = true;
}
Run Code Online (Sandbox Code Playgroud)
我需要从数据库中获取"Originator"并将其与OrginatorName进行比较以检查重复值.我需要在检查之前删除所有空格.
例如,该函数必须将"John Van"视为与"JohnVan"相同.我上面的代码不起作用.我怎样才能做到这一点?
我有这个行过滤器文本:"[Name 1] = '" + forename + "%" + surname + "'"失败,但如果我把它%放在开头或结束它没关系.有没有办法实现相同的结果(即名称中间的"任何"字符串)?
完整声明是:
dv = new DataView(MyDataTable,
"[Name 1] = '" + forename + "%" + surname + "'",
"", DataViewRowState.CurrentRows);
Run Code Online (Sandbox Code Playgroud) 我在dataview rowfilter中遇到小问题.如何在dataview rowfilter.i中处理文本框空值我在此过滤器中使用OR运算符.请帮助指导我这个问题.到目前为止我使用下面的代码.
Column1 = string.IsNullOrEmpty(txtColumn1.Text) ? "" : "%" + txtColumn1.Text + "%";
Column2 = string.IsNullOrEmpty(txtColumn2.Text) ? "" : "%" + txtColumn2.Text + "%";
Column3 = string.IsNullOrEmpty(txtColumn3.Text) ? "" : "%" + txtColumn3.Text + "%";
dataView.RowFilter = @"Column1 like '" + Column1 + "'" + "OR Column2 like '" + Column2 + "'" + "OR Column3 like '" + Column3 + "'";
Run Code Online (Sandbox Code Playgroud) 我有一个带有以下模板的ExtJS DataView:
<ul>
<tpl for=".">
<li class="report-field" id="{listId}">
{[this.getReorderLinks(values, xindex, xcount)]}
<span class="field-title small" data-qtip="{displayName}">{displayName}</span>
<i class="field-remove" title="' + deleteLabel + '"></i>
</li>
</tpl>
</ul>
Run Code Online (Sandbox Code Playgroud)
这使得每个项目列表如下所示:

用户可以在其中单击不同的图标并执行相关操作,依次向上/向下移动并删除。
请注意,这些项目是通过拖放操作添加到dataview的,这里还有另一个源dataview容器,我可以从中拖动这些项目并添加到此处。虽然这些向上/向下箭头可以很好地对它们进行重新排序,但我想在内部使用拖放功能对这些项目进行重新排序。
因此,为了使每个项目都可在同一区域中拖放,我使用refreshdataview事件和在此处注册的DND如下:
listeners: {
'refresh': function(dataview, eOpts) {
var fieldsList = Ext.query('.added-field');
// Iterate over the list and make each item draggable/droppable.
Ext.each(fieldsList,function(field){
var dragSource,
fieldId;
fieldId = field.id;
dragSource = new Ext.dd.DragSource(field, {
isTarget : false
});
dropZone = new Ext.dd.DropTarget(field);
dragSource.dragData = {
record: me.viewStore.findRecord('listId', fieldId),
fieldId: fieldId
}; …Run Code Online (Sandbox Code Playgroud) 我的数据表包含许多重复的行,我需要根据多列从数据表中过滤这些行,以在结果数据表中获取不同的行......
Barcode Itemid PacktypeId
1 100 1
1 100 2
1 100 3
1 100 1
1 100 3
Run Code Online (Sandbox Code Playgroud)
仅需要包含 packtypeid 1,2,3 的行,应删除剩余的第 4 行和第 5 行
我尝试过使用两种方法,但都没有获得更好的结果
数据表包含超过 10 列,但唯一列是“Barcode”、“ItemID”、“PackTypeID”
方法一:
dt_Barcode = dt_Barcode.DefaultView.ToTable(true, "Barcode", "ItemID", "PackTypeID");
Run Code Online (Sandbox Code Playgroud)
上面的方法过滤了行,但它只返回列 3 列值,我需要整个 10 列值。
Method-2:
List<string> keyColumns = new List<string>();
keyColumns.Add("Barcode");
keyColumns.Add("ItemID");
keyColumns.Add("PackTypeID");
RemoveDuplicates(DataTable table, List<string> keyColumns)
{
var uniqueness = new HashSet<string>();
StringBuilder sb = new StringBuilder();
int rowIndex = 0;
DataRow row;
DataRowCollection rows = table.Rows;
int i = …Run Code Online (Sandbox Code Playgroud) 我想向我的图表添加特定的工具提示。但是,我在将它们添加到 ArraytoDataTable 中时遇到问题。我在某处读到我应该添加“datatable.setcolumnproperty(3, 'role', 'tooltip')”。但也许它不在有效的地方?或者我必须提前指定角色吗?
这是我的代码:
google.load('visualization', '1', { 'packages': ['corechart'] } );
google.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Kenmerk', 'Belangrijkheid', 'tooltip', { role: 'style' } ],
['testa', {10}, 'tooltip1', 'color: #394165'],
['testb', {20}, 'tooltip2', 'color: #0CA5AA'],
['testc', {30}, 'tooltip3', 'color: #F2941A'],
['testd', {40}, 'tooltip4', 'color: #E64E67']
datatable.setcolumnproperty(3, 'role', 'tooltip');
]);
var view = new google.visualization.DataView(data);
view.setColumns([0, 1,
{ calc: function(dt, rowIndex) { return dt.getValue (rowIndex, 1).toString() + '%' },
sourceColumn: 1,
type: "string",
role: "annotation" },
2]); …Run Code Online (Sandbox Code Playgroud) 有没有办法让一个选择的索引DataRowView中DataRow?
我目前有以下代码
private long GetSelectedIndex(DataView dataView, string searchString)
{
long selectedIndex = 0;
foreach(DataRowView dataRow in dataView)
{
if(dataRow.Row.ItemArray.Contains(searchString)
{
//Do Something.... I've tried everything to get the index out of the dataRow
}
}
return selectedIndex;
}
Run Code Online (Sandbox Code Playgroud) 我有一个数据表(由 xls 文件填充),其中包含不同种类的水果和豆类。
我从这个数据表中创建一个数据视图,并使用 RowFilter 仅包含土豆和西红柿。
现在,我尝试创建一个分组(使用“名称”列)并从另一列“数量”中求和。
实际上 :
Name | Quantity | color
tomatoe | 2 | red
tomatoe | 1 | red
potatoe | 5 | yellow
tomatoe | 1 | red
potatoe | 1 | yellow
Run Code Online (Sandbox Code Playgroud)
我会返回一个数据表或数据视图,如下所示:
Name | Quantity | color
tomatoe | 4 | red
potatoe | 6 | yellow
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点 ?
抱歉,如果这很简单,但我对此很菜鸟。