2012-11-28 7 views
0

버튼을 누를 때 팝업되는 jQuery 대화 상자가 있습니다. 거기에 내 데이터베이스에서 결과를 포함하는 GridView 있습니다. 내가 검색 한 결과를 표시하도록 GridView를 만들고 싶습니다. 따라서 asp:textboxasp:button을 추가 했으므로 버튼을 누르면 데이터베이스와 연결 한 다음 GridView에 결과를 표시하는 기능이 호출됩니다. 그래서 기본적으로, jQuery가 터지면 빈 GridView (또는 none)가 표시되어야합니다. 그런 다음 무언가를 검색 할 때 결과를 표시해야합니다.데이터베이스에서 검색하고 jQuery 대화 상자가있는 GridView에 표시

다음
<div id="ViewPlaces"> 
       <asp:TextBox ID="viewPlaceTextbox" runat="server" placeholder="Search..." /> 
       <asp:Button ID="viewPlaceBtn" OnClick="getSearchedPlace" runat="server" Text="Search for place" /> 
         <asp:GridView ID="GridView1" AllowPaging="true" GridLines="None" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle="alt" runat="server" AllowSorting="True" 
          AutoGenerateColumns="False" 
          Width="750px" 
          CausesValidation="False" ShowHeaderWhenEmpty="true" ShowHeader="true"> 
          <Columns> 
           <asp:BoundField DataField="place_id" HeaderText="Id" ReadOnly="True" /> 
           <asp:BoundField DataField="place_name" HeaderText="Name" /> 
           <asp:BoundField DataField="place_city" HeaderText="City" /> 
           <asp:BoundField DataField="place_land" HeaderText="Land" /> 
           <asp:BoundField DataField="place_desc" HeaderText="Description" />       
          </Columns> 
         </asp:GridView> 
      </div> 

는 jQuery 코드입니다 : 여기 내 main.aspx 코드

내 C# 코드에서
$('#ViewPlaces').dialog(dialogOpts5); 
     $.fx.speeds._default = 500; 
     $(function() { 
      $("#ViewPlaces").dialog({ 
       autoOpen: false, 
       show: "blind", 
       hide: "explode", 
      }); 

      $("#viewallplaces").click(function() { 
       $("#ViewPlaces").dialog("open"); 
       return false; 
      }); 
     }); 

문제는 그 전에서 결과를 가져 오기위한 함수를 호출하지 않는 경우 Page_Load에있는 데이터베이스를 열면 jQuery 대화 상자를 여는 버튼을 누를 때 GridView가로드되지 않습니다. 그렇지 않으면, 기능은 다음과 같습니다 :

protected void getPlaces() 
{ 
    List<Place> pl = new List<Place>(); 
    pl = functions.getPlaces(); 
    GridView1.DataSource = pl; 
    GridView1.DataBind(); 
} 

그리고 getPlaces() 기능은 장소의 목록을 반환합니다. 그것은 문제가되지 않으며 작동하며 테스트를 마쳤습니다.

답변

1

이 시나리오에서는 gridview 및 updatepanel 및 forego jquery와 같은 webforms 컨트롤을 사용하거나 기본 HTML 요소를 사용하고 jquery를 사용하여 끝점 (url)을 호출하고 결과 클라이언트 측을 렌더링합니다. 그러나 둘 다.

+0

에 HTML을 삽입 할 수 있습니다. 더 설명해 주시겠습니까? – Apostrofix

+0

서버 측 코드에서 원하는 효과를 얻으려면 gridview (및 가능하면 updatepanel)를 사용하십시오. 또는 기본 HTML 및 jquery를 사용하여 html 테이블을 웹 메서드 또는 일반 webforms 처리기와 함께 렌더링하여 데이터베이스를 쿼리하고 데이터를 JSON 객체로 반환 할 수 있습니다. 당신이 원하지 않는 것은 jquery를 사용하여 서버를 호출하고 서버가 그리드 뷰를 렌더링하도록하는 것입니다. –

1

gridview에만 데이터를 표시하는 경우 gridview를 생성하는 별도의 페이지가있을 수 있습니다.

이 페이지는 gridview 만 보유하고 있다고 가정 해보십시오. 쿼리 스트링으로 url의 gridview 매개 변수를 전달하는 페이지에 jquery ajax 호출을 사용할 수 있습니다. 그리드 뷰 페이지의 페이지로드에서 쿼리 문자열 매개 변수를 확인한 다음이를 사용하여 데이터베이스에 데이터를 쿼리 한 다음 데이터를 사용하여 그리드 뷰를 바인딩합니다.

아약스 호출은 HTML을 반환하고 당신은 내가 완전히에 의해 제안 된 옵션을 이해하는 것이 확실하지 않다 당신의 팝업

$.ajax({ 
url: "yourgridpage.aspx?dat1=YourValue1&dat2=YourVal2" 
}).done(data,function() { 
$.popUp.html(data); 
}); 
관련 문제