2017-04-21 2 views
1

에서 masterpage에서 검색 상자에서 결과를 표시하고 내가 알고있는 두 가지 일을 해달라고하려면 다음에 결과를 전송하는 방법내가 어떻게 asp.net 프로젝트, masterpage에있는 검색 창을 asp.net

1) 새 페이지 (마스터 페이지에 있기 때문에)

2) 어떻게 결과를 표시 할 수 있습니까?

첫 번째 질문에 대한 대답은 DataTable 및 마스터 페이지에 빌드 된 새 페이지 (세션 생성 확인했는데 pageload 함수 확인에 세션 시도했는지 = null 있지만 잘 작동하지 않습니다. pageload 기능이 masterpage 기능 이전이기 때문입니다.

users += "<div class='divusers'>"; 
users += "<h5>" + dt.Rows[0][0].ToString() + "</h5>"; 
users += "<h5>" + dt.Rows[0][1].ToString() + "</h5>"; 
users += "</div>"; 

하지만 결과를 보여줄 수있는 더 좋은 방법이있다 : 나는이 시도 두 번째 질문에 대한

?

+0

의 페이지로드 마스터 페이지

protected void SearchButton1_Click(object sender, EventArgs e) { Response.Redirect("~/SearchPage.aspx?searchTerm="+txtSearchter.Text); } 

에서 검색 버튼을 클릭 할 때이 을 시도 - 당신은 두 가지 질문을 더 잘 작성하십시오. 그게 SO가 여기에 기대되는 형식입니다 – Andrei

+0

결과의 유형 (단일 값 또는 무언가)은 무엇입니까? – user7415073

+0

검색을 구현하는 방법에 대해 자세히 알려주시겠습니까? – Krishna

답변

0

마스터 페이지에서 컨트롤을 배치하여 결과를 표시 할 수 있습니다.

<div class="divusers"> 
    <asp:Repeater ID="Repeater1" runat="server"> 
     <ItemTemplate> 
      <h5><%# Eval("columnName") %></h5> 
     </ItemTemplate> 
    </asp:Repeater> 
</div> 

는, 그리고, 교인을 사용하고있는 페이지를 영문에서 마스터 페이지의 제어를 찾아에 데이터 바인딩의 FindControl을 사용한다.

protected void SearchButton1_Click(object sender, EventArgs e) 
{ 
    Repeater rep = this.Master.FindControl("Repeater1") as Repeater; 
    rep.DataSource = DataTable; 
    rep.DataBind(); 
} 
+0

에 결과를 표시하고 싶다면 aspx 페이지에서 마스터 페이지의 서버 측을 말하면됩니까? 마스터 페이지에서 작성된 일반 aspx 페이지에서 검색 버튼을 클릭하면 SearchButton_Click을 수행 할 수 없으므로 버튼을 인식하지 못합니다. –

+0

나 자신을 아주 미안하다. 마스터 페이지가 아니라 마스터 페이지를 사용하고있는 페이지에 있습니다. – VDWWD

+0

버튼이 올바른 페이지가 아니라 마스터 페이지에 있기 때문에 searchbutton_click 기능을 수행 할 수 없습니다. –

0

그런 다음

protected void Searchbtn_Onclick(object sender, EventArgs e) 
{ 
    //bind the gridview 
    ScriptManager.RegisterClientScriptBlock(this.Page, this.GetType(), "MyFun1", "javascript:ShowDialog(" + "'Result " + "');", true); 
} 

스크립트

에서
script type="text/javascript"> 
    function ShowDialog() { 
     $("#dialog").dialog({ 
      autoOpen: false, 
      hide: "puff", 
      show: "slide", 
      width: "70%", 
      modal: true, 
      close: function(event, ui) { 
       $("#dialog").find("form").remove(); 
       $("#dialog").dialog('destroy'); 

      } 
     }); 
     $("#dialog").dialog("open"); 

    } 
뒤에

<GridView> 
<Columns> 
    <asp:BoundField DataField="FirstName" HeaderText="First Name" ReadOnly="True" Visible="True" /> 
//other Boundfields 
    <asp:TemplateField HeaderText="Search"> 
    <ItemTemplate> 
     <asp:Button Id="Searchbtn" runat="server" Text="Search" onClick="Searchbtn_Onclick"/> 
    </ItemTemplate> 
    </asp:TemplateField> 
</columns> 
</GridView> 

코드 새 페이지에 Transfering 대신 대화 (팝업)에 결과를 표시하는 것이 좋습니다

+0

어떻게 데이터를 자바 스크립트 함수로 전송합니까? 그리고 ScriptManager.RegisterClientScriptBlock에서 "MyFun1"은 무엇입니까? –

1

송금 할 필요가 없습니다. 두 개의 질문이 있으면 그냥 페이지에 검색 문자열을 보내야 결과, 결과 페이지

protected void Page_Load(object sender, EventArgs e) 
{ 
    if(!IsPostBack) 
    { 
    string SearchTerm = Request.QueryString["searchTerm"]; 
    //Do database search and bind to a gridview 
    } 
} 
+0

감사합니다.이 해결책이 효과적입니다. –

+0

당신은 환영합니다. – Krishna