2017-04-21 1 views
1

j'ai une recherche boîte à masterpage, dans le projet asp.net et je ne sais pas deux choses:comment afficher les résultats de zone de recherche masterpage dans asp.net

1) comment transférer les résultats à un nouvelle page (parce que c'est dans la page maître)

2) comment afficher les résultats? Pour la première question j'ai essayé de créer une session avec le DataTable des réponses et dans la nouvelle page (qui est construite sur le maître) sur la fonction de pageload vérifier si la session! = Null mais il ne fonctionne pas bien parce que la fonction pageload est avant la fonction masterpage.

pour la deuxième question, j'ai essayé ceci:

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

, mais est-il une meilleure façon de montrer les résultats?

+0

Si vous avez deux questions - vous mieux créer deux questions distinctes. C'est le format attendu ici sur SO – Andrei

+0

quel est le type de résultat (une seule valeur ou quelque chose)? – user7415073

+0

pourriez-vous s'il vous plaît donner plus d'informations sur la façon dont la recherche mis en œuvre? – Krishna

Répondre

0

Sur le gabarit, vous pouvez placer un contrôle pour afficher les résultats.

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

Et puis sur la ASPX de la page qui utilise le Mater, utilisez FindControl pour localiser le contrôle sur la page principale et les lier des données.

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

quand vous dites dans la page aspx vous voulez dire le côté serveur de la page maître? Parce que je ne peux pas faire un SearchButton_Click lorsque le bouton de recherche est cliqué à partir d'une page aspx régulière qui construit sur la page maître, il ne reconnaît pas le bouton. –

+0

Pas très clair de moi désolé. C'est sur la page qui utilise la page maître, pas le maître lui-même. – VDWWD

+0

Je ne peux pas faire la fonction searchbutton_click parce que le bouton est sur la page maître et non sur la bonne page. –

0

Il est préférable de montrer le résultat dans Dialog (Popup) au lieu de Transférer à nouvelle page

<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> 

code Derrière

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

puis dans Script

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"); 

    } 
+0

comment transférer des données à la fonction javascript? et dans le ScriptManager.RegisterClientScriptBlock qu'est-ce que "MyFun1"? –

1

Vous n'avez pas besoin de transférer les résultats que vous avez juste besoin d'envoyer la chaîne de recherche à la page, essayez ce sur le bouton de recherche, cliquez dans la page principale

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

Sur la charge de page de la page de résultats

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

merci l'homme, cette solution fonctionne. –

+0

Vous êtes les bienvenus. – Krishna