2014-11-21 3 views
2

this 열의 gridview에서 검색을 구현했습니다. 내 요구 사항에 따라 구현했습니다. 그러나 그것은 나를 위해 작동하지 않습니다. 참조를 위해 코드를 참조하십시오 : - : 그리드검색이 Gridview에서 작동하지 않습니다

에 대한

protected void grdCSRPageData_DataBound(object sender, EventArgs e) 
    { 
     GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal); 
     for (int i = 0; i < grdCSRPageData.Columns.Count; i++) 
     { 
      TableHeaderCell cell = new TableHeaderCell(); 
      TextBox txtSearch = new TextBox(); 
      txtSearch.Attributes["placeholder"] = grdCSRPageData.Columns[i].HeaderText; 
      txtSearch.CssClass = "form-control"; 
      cell.Controls.Add(txtSearch); 
      row.Controls.Add(cell); 
     } 
     grdCSRPageData.HeaderRow.Parent.Controls.AddAt(1, row); 
    } 

변화 -를

<asp:GridView ID="grdCSRPageData" runat="server" Width="100%" border="1" Style="border: 1px solid #E5E5E5;" CellPadding="3" class="hoverTable" AutoGenerateColumns="false" AllowPaging="True" BackColor="#E5E5E5" BorderColor="#999999" BorderStyle="Solid" BorderWidth="1px" ForeColor="Black" GridLines="Vertical" ShowFooter="true" PageSize="5" OnPageIndexChanging="grdCSRPageData_PageIndexChanging" OnRowCancelingEdit="grdCSRPageData_RowCancelingEdit" OnRowEditing="grdCSRPageData_RowEditing" OnRowUpdating="grdCSRPageData_RowUpdating" OnRowDeleting="grdCSRPageData_RowDeleting" OnRowCommand="grdCSRPageData_RowCommand" OnDataBound="grdCSRPageData_DataBound"> 
       <AlternatingRowStyle BackColor="#CCCCCC" /> 

       <Columns> 
        <asp:BoundField DataField="page_title" HeaderText="Page Title" ItemStyle-Width="30" /> 
        <asp:BoundField DataField="page_description" HeaderText="Page Description" ItemStyle-Width="30" /> 
        <asp:BoundField DataField="meta_title" HeaderText="Meta Title" ItemStyle-Width="30" /> 
        <asp:BoundField DataField="meta_keywords" HeaderText="Meta Keywords" ItemStyle-Width="30" /> 
        <asp:BoundField DataField="meta_description" HeaderText="Meta Description" ItemStyle-Width="30" /> 
        <asp:CheckBoxField DataField="Active" HeaderText="Active" ItemStyle-Width="15" /> 
        <asp:TemplateField HeaderText="Edit/Delete" HeaderStyle-Width="15%"> 
         <ItemTemplate> 
          <asp:LinkButton ID="lbtnEdit" runat="server" CommandName="Edit" Text="Edit" /> 
          <span onclick="return confirm('Are you sure want to delete?')"> 
           <asp:LinkButton ID="btnDelete" Text="Delete" runat="server" CommandName="Delete"></asp:LinkButton> 
          </span> 
         </ItemTemplate> 
         <EditItemTemplate> 
          <asp:LinkButton ID="btnUpdate" Text="Update" runat="server" CommandName="Update" /> 
          <asp:LinkButton ID="btnCancel" Text="Cancel" runat="server" CommandName="Cancel" /> 
         </EditItemTemplate> 
         <HeaderTemplate> 
          <asp:Button ID="btnInsertRecord" runat="server" Text="Add" CommandName="Insert" /> 
         </HeaderTemplate> 
         <HeaderStyle Width="15%"></HeaderStyle> 
        </asp:TemplateField> 
       </Columns> 
      </asp:GridView> 

또한 JS 스크립트 또한

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>   
<script type="text/javascript" src="js/quicksearch.js"></script> 
<script type="text/javascript"> 
    $(function() { 
     $('.form-control').each(function (i) { 
      $(this).quicksearch("[id*=grdCSRPageData] tr:not(:has(th))", { 
       'testQuery': function (query, txt, row) { 
        return $(row).children(":eq(" + i + ")").text().toLowerCase().indexOf(query[0].toLowerCase()) != -1; 
       } 
      }); 
     }); 
    }); 
</script> 

이 타이밍에서 뒤에 코드를 볼 참조

protected void grdUser_DataBound(object sender, EventArgs e) 
    { 
     GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal); 
     for (int i = 0; i < grdUser.Columns.Count; i++) 
     { 
      TableHeaderCell cell = new TableHeaderCell(); 
      TextBox txtSearch = new TextBox(); 
      txtSearch.Attributes["placeholder"] = grdUser.Columns[i].HeaderText; 
      txtSearch.CssClass = "form-control HaydaBre"; 

      if (grdUser.Columns[i].HeaderText != "Action" && grdUser.Columns[i].HeaderText != "" && grdUser.Columns[1].HeaderText != "Select") // && grdUser.Columns[i].HeaderText != "" && grdUser.Columns[i].HeaderText != null && grdUser.Columns[i].HeaderText != "Select") 
      { 
       cell.Controls.Add(txtSearch); 
      } 
      row.Controls.Add(cell); 
     } 
     grdUser.HeaderRow.Parent.Controls.AddAt(1, row); 
    } 

HeaderText! = Select. 첫 번째 열에 대해서는 작동을 멈추지 만 다른 열에 대해서는 작동합니다.

+0

작업의 어떤 방법을? – BNN

+0

이것은 클라이언트 측 구현이므로 [Firebug] (http://getfirebug.com/)를 사용하여 코드를 디버깅했습니다. 그럼 여기에 오류 메시지를 공유하십시오 .. 내 코드가 작동합니다 ... – wooer

+0

@wooer : 오류 메시지, U는 콘솔 오류라고 말하고 싶습니까? – BNN

답변

3

양식 제어 클래스에는 많은 요소가 있습니다.

protected void grdCSRPageData_DataBound(object sender, EventArgs e) 
    { 
     GridViewRow row = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal); 
     for (int i = 0; i < grdCSRPageData.Columns.Count; i++) 
     { 
      TableHeaderCell cell = new TableHeaderCell(); 
      TextBox txtSearch = new TextBox(); 
      txtSearch.Attributes["placeholder"] = grdCSRPageData.Columns[i].HeaderText; 
      txtSearch.CssClass = "form-control HaydaBre"; 
      cell.Controls.Add(txtSearch); 
      row.Controls.Add(cell); 
     } 
     grdCSRPageData.HeaderRow.Parent.Controls.AddAt(1, row); 
    } 

를하고 JS 코드로 : 그래서 당신은 당신의 C# 코드가 될 변경할 수 있습니다

<script type="text/javascript"> 
    $(function() { 
     $('.HaydaBre').each(function (i) { 
      $(this).quicksearch("[id*=grdCSRPageData] tr:not(:has(th))", { 
       'testQuery': function (query, txt, row) { 
        return $(row).children(":eq(" + i + ")").text().toLowerCase().indexOf(query[0].toLowerCase()) != -1; 
       } 
      }); 
     }); 
    }); 
</script> 
+0

감사의 말씨, 정말 당신의 도움을 주셔서 감사합니다. 지금은 나를 위해 매력으로 일하고 있습니다 .. !! :) – BNN

+1

당신은 천만에요. Nadeem, 내가 도와 줬기 때문에 너무 기뻤습니다, 행복한 코딩 .. – wooer

+1

우리 모두가 여기에있는 이유입니다. 제가 도왔다는 소식을 듣고 기쁩니다. 그리고 그것은 또한 그의 직원에 대한 감사를 가지고 관리자를 가지고 위대해야합니다 :) 감사합니다. 좋은 하루 되세요 그리고 CSS 클래스 이름에 조심하십시오 :) – wooer

관련 문제