c# - 数据未绑定到 C# ListView(第二次尝试后)
问题描述
我正在尝试使用 ListView 从数据库中提取数据。如果该值存在,它在第一次尝试时“有效”,但是在搜索不存在的值然后再尝试使用任何其他值时会出现问题(即使该其他值确实存在)。
调试时,我注意到以下内容:
如果我搜索数据库中不存在的值,然后尝试搜索存在的值,调试器会直接从“bValid = true”行转到获取 Listview 数据的方法 (lstAuthorizations_GetData()) . 相反,它应该转到 bindData。似乎它没有处理 bValid = true 行。为什么会在这里破?我尝试将行更改为其他变体,但无论它是什么,它似乎都没有按正确的顺序处理
代码:
else //default
{
if(string.IsNullOrEmpty(Search_ANumber) && string.IsNullOrEmpty(Search_MemberID))
{
bValid = false;
errorMsg = "Either A Number or M ID are required";
}
else
{
bValid = true;
lstAuthorizations.FindControl("cColumn").Visible = false; // if not in ActiveExceptions, hide column //may want to move this to Line 214
}
}
if (bValid)
{
bindData();
}
protected void bindData()
{
//removeTextBoxValues(); //remove values from Textboxes since you got a response from the DB
ShouldSearch = true;
panelSearchResults.Visible = true;
lstAuthorizations.DataBind();
}
ListView 的 getdata 方法:
public IQueryable<Project.Data.databaseView> lstAuthorizations_GetData()
{
try
{
IQueryable<databaseView> query = dbVBA.databaseView.AsQueryable();
if (!String.IsNullOrEmpty(Search_AuthNumber))
{
query = query.Where(m => m.A_Number == Search_ANumber);
}
return query.OrderBy(a=>a.A_Number);
}
aspx:
<asp:ListView ID="lstAuthorizations" runat="server"
ItemPlaceholderID="litPlaceHolder"
ItemType="Project.Data.databaseView" SelectMethod="lstAuthorizations_GetData">
当它实际返回结果时,它似乎运行了两次从数据库获取数据的方法(它进入 lstAuthorizations_GetData() 方法,然后进入数据绑定,然后再次进入 lstAuthorizations_GetData() 方法)。在我尝试第二个值的情况下,它会转到 lstAuthorizations_GetData() 方法,但永远不会绑定数据。
任何人都知道为什么这会失败?
解决方案
绑定数据后,我不得不移动隐藏/显示控件。它现在有效:
if (bValid)
{
bindData();
lstAuthorizations.FindControl("cColumn").Visible = true;
推荐阅读
- azure-active-directory - 与另一个租户中的应用注册交谈时 Azure Databricks 抛出错误
- html - 在工具按钮后启用悬停颜色
- python - 查找两条 3D 折线的交点
- flutter - 来自 QueryDocumentSnapshot 的访问列表字段
- php - : 和 ?? 之间有什么区别?PHP 运算符?
- python-3.x - DeprecationWarning: executable_path has been deprecated, please pass in a Service object
- django - 在 Django 中处理重复的引导模式
- web-component - 我应该如何将 Web 组件添加到页面?
- php - PHP shell_exec:PHP 总是等待完成
- node.js - 如何从 s3 存储桶中的 tar.gz 读取文件