C# 当我搜索任何记录时,单击“打印”按钮后,会出现错误,如“请选择行”
在这里,我使用OLEDB Access数据库和rdlc报告开发了WPF应用程序。在这里,我遇到了Datagrid的问题。此应用程序运行完美,但当我搜索任何记录时,它会给我错误,请选择要打印的记录!!!。当我调试这个应用程序时,我知道它。当我搜索任何记录时,时间复选框值自动设置为false。这就是问题所在。所以请建议我该怎么做?我是否可以更改搜索代码,如果我更改了,请向我推荐任何好的方法。提前谢谢。请看我的删除按钮代码,因为当我点击删除,但之后,它创建了这个问题 以下代码用于搜索ChequeName:-C# 当我搜索任何记录时,单击“打印”按钮后,会出现错误,如“请选择行”,c#,wpf,oledb,C#,Wpf,Oledb,在这里,我使用OLEDB Access数据库和rdlc报告开发了WPF应用程序。在这里,我遇到了Datagrid的问题。此应用程序运行完美,但当我搜索任何记录时,它会给我错误,请选择要打印的记录!!!。当我调试这个应用程序时,我知道它。当我搜索任何记录时,时间复选框值自动设置为false。这就是问题所在。所以请建议我该怎么做?我是否可以更改搜索代码,如果我更改了,请向我推荐任何好的方法。提前谢谢。请看我的删除按钮代码,因为当我点击删除,但之后,它创建了这个问题 以下代码用于搜索ChequeNam
private void txtChequeName_TextChanged(object sender, TextChangedEventArgs e)
{
System.Windows.Controls.TextBox t = (System.Windows.Controls.TextBox)sender;
string filter = t.Text.ToUpper();
ICollectionView cv = CollectionViewSource.GetDefaultView(dgDataArea.ItemsSource);
if (filter == "")
cv.Filter = null;
else
{
cv.Filter = o =>
{
BankMaster p = o as BankMaster;
//if (t.Name == "txtFirstName")
//return (p.FirstName == filter);
return (p.ChequeName.ToUpper().StartsWith(filter));
};
}
}
以下代码用于打印数据:-
private void ImgPrint_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
try
{
List<BankMaster> bmlist = dgDataArea.ItemsSource as List<BankMaster>;
if (bmlist != null)
{
foreach (var item in bmlist)
{
if (item.CheckAll == false)
{
MessageBox.Show("Please select the record which you want to print !!!", "Error In Selecting Record", MessageBoxButton.OK, MessageBoxImage.Error);
break;
}
else
{
ChequePrintReport chreport = new ChequePrintReport();
B_SQUARE_System.Core.Utility.GeneralDeclaration.isGridSelectionChange = true;
chreport.ChequeInfo__OnSaved += adddata_BankInfo_OnSaved;
chreport.isEditMode = true;
chreport.currentSelectedItem = bmlist;
chreport.ShowDialog();
break;
}
}
}
}
private void Imgdelete_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
try
{
List<BankMaster> bmlist = dgDataArea.ItemsSource as List<BankMaster>;
String msg = "Are you sure you want to delete selected rows ? ";
int count = 0;
if (bmlist != null)
{
foreach (var item in bmlist)
{
if (item.CheckAll == false)
{
MessageBox.Show("Please select the record which you want to delete !!!", "Error In Selecting Record", MessageBoxButton.OK, MessageBoxImage.Error);
break;
}
else
{
if (MessageBox.Show(msg, "Delete Cheque Data", MessageBoxButton.YesNo, MessageBoxImage.Warning) == MessageBoxResult.Yes)
{
foreach (var items in bmlist)
{
if (items.CheckAll == true)
{
bmservices.deleteBankMasterInfo(items.Bank_ID);
count++;
}
}
System.Windows.MessageBox.Show("You deleted " + " " + count + " " + "rows.", "Total Deleted Row", MessageBoxButton.OK, MessageBoxImage.Information);
BankMaster_Loaded(sender, e);
}
break;
}
break;
}
}
问题在于您的项目。请检查循环中的所有条件。您不应该在这里使用else语句,因为所有的项都没有被检查,所以else代码将针对某些项运行 更改foreach循环内的代码,如下所示:
bool printed = false;
foreach (var item in bmlist)
{
if (item.CheckAll)
{
//Place the Printing code here
printed=true;
}
if (printed == false)
{
//Place the Error message here
}
}
以类似的方式更改删除代码…谢谢兄弟。但我在选择复选框方面有问题。单一选择会产生问题。我附上上述问题中的复选框代码。请帮帮我