Я пытаюсь использовать 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();
}
Метод getdata ListView:
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 (), но никогда не связывается с данными.
Кто-нибудь знает, почему это не удается?