gridview가 있습니다. 그것의 데이터 소스는 목록에서 일부 xmlElemens를 추가하고 목록을 데이터 소스로 설정하여 XML에서 가져옵니다. 이제 검색 기능을 구현하고 있습니다. C# ASP.NET GridvView 업데이트 소스이지만 명령이 없습니다.
그래서 나는 이런 식으로 목록을 필터링하고 있습니다 :protected void btnSearch_Click(object sender, EventArgs e)
{
XmlDocument doc = new XmlDocument();
doc.Load(prog); //Percorso file xml
List<string> nomi = new List<string>();
XmlElement root = doc.DocumentElement;
XmlNodeList elemLists = root.GetElementsByTagName("nome");
// this binds the gridview to the title text to display
for (int i = 0; i < elemLists.Count; i++)
{
if(elemLists[i].InnerXml.ToString().ToLower().StartsWith(txtSearchMaster.Text.ToLower()) ||
elemLists[i].InnerXml.ToString().ToLower() == txtSearchMaster.Text.ToLower() ||
elemLists[i].InnerXml.ToString().ToLower().EndsWith(txtSearchMaster.Text.ToLower()) ||
elemLists[i].InnerXml.ToString().ToLower().Contains(txtSearchMaster.Text.ToLower()))
nomi.Add(elemLists[i].InnerXml.ToString());
}
GridView1.DataSource = nomi.OrderBy(q => q).ToList();
GridView1.DataBind();
}
는 데이터가 올바르게 표시되지만 문제는 내가 (즉 자동 생성되는 열 옆에있는 버튼을 클릭하고 셀 내용을 얻을 때 목록의 요소 인 경우) 동일한 인덱스이지만 이전 데이터의 셀 내용을 반환합니다.
어떻게이 문제를 극복 할 수 있습니까?
그래서 검색 필드를 저장 한 다음 페이지를 새로 고쳐 필터링해야합니다. 상쾌하게하는 방법이 있습니까? –
그리드 *는 명령 실행시 페이지를 새로 고치고 (html 교체를 수행하고 있습니다). 이는 그리드가 페이지를 새로 고칠 때 이전과 동일한 결과를 얻도록합니다. –