我已经找到了解决问题的方法,但仍然没有找到适合我的方法。所以我报名参加我的问题得到了一些帮助。感谢帮助。
public Form1()
{
InitializeComponent();
dataGridView1.Columns.Add("FirstNames", "FirstName");
dataGridView1.Columns.Add("SecondNames", "SecondName");
dataGridView1.Columns.Add("AccountNames", "AccountName");
dataGridView1.Columns.Add("Emailaddresses", "Emailaddress");
try
{
// enter AD settings
PrincipalContext AD = new PrincipalContext(ContextType.Domain, (ConfigurationManager.AppSettings["Domaene"]));
using (var searcher = new PrincipalSearcher(new UserPrincipal(AD)))
{
foreach (var result in searcher.FindAll())
{
DirectoryEntry de = result.GetUnderlyingObject() as DirectoryEntry;
dataGridView1.Rows.Add
(
de.Properties["givenName"].Value,
de.Properties["sn"].Value,
de.Properties["samAccountName"].Value,
de.Properties["userPrincipalname"].Value
);
}
}
}
catch (Exception ex)
{
}
}
这是我创建ActiveDirectory并将其放入dataGridView的方式。我正在搜索的功能是如何使用textBox搜索此DVG。所以我已经尝试过这样的事情:
String searchValue = textBox1.Text;
int rowIndex = -1;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
if (row.Cells[2].Value != null) // Need to check for null if new row is exposed
{
if (row.Cells[1].Value.ToString().Equals(searchValue))
{
rowIndex = row.Index;
break;
}
}
}
此代码段来自此网站的其他帖子。我在构建时尝试过它并没有为我工作。当我在textBox中放入一些东西时,它会抛出一个System.NullReferenceException。问题是:我真的不知道为什么它不起作用。 将不胜感激任何答案!
问候, MarvinR
答案 0 :(得分:1)
基本上,您希望枚举所有单元格,一旦找到要搜索的值,就返回此单元格的行索引。因此,您的代码应尽可能无提示,以引用异常引用异常。这种方法的一个例子。
private int SearchValueRowIndex()
{
string searchValue = textBox1.Text;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
if (cell.Value != null && cell.Value.ToString() == searchValue)
{
return cell.RowIndex;
}
}
}
// Not found
return -1;
}
答案 1 :(得分:0)
试试这个
var dg = new DataGrid();
var tb = new TextBox();
tb.ID = "myTextBox"
foreach (DataGridItem item in dg.Items)
{
foreach (var cell in item.Cells)
{
TextBox val = (TextBox)item.FindControl("textboxid here");
if (val.Text == tb.Text)
{
//do something here
}
}
}
这将循环遍历每个行和单元格以查找特定文本框中的值,如果需要循环浏览其他文本框,则可以编写另一部分代码来查找数据网格中的所有控件。