asp.net
  • vb.net
  • variables
  • hyperlink
  • 2013-02-27 46 views 0 likes 
    0

    我目前在ASP.NET網頁上有一個listview,它顯示來自Access數據庫的「山寨」記錄。每個山寨機的名稱顯示爲使點擊時超鏈接帶你到另一個網頁:點擊鏈接時的變量設置值

    <li style="">Name: 
        <asp:Hyperlink ID="Cottage_NameLabel" NavigateURL="~/Cottage.aspx" 
         runat="server" Text='<%# Eval("Cottage_Name") %>' /> 
        <br /> 
    

    此選擇超鏈接時工作完全正常。我希望系統做的是將公共聲明的變量(在模塊中設置)的值設置爲所選超鏈接的Cottage_Name。所以說,如果我點擊一個超級鏈接,說「山寨1」,公共變量設置爲「山寨1」,然後瀏覽網址打開下一個網頁。

    如果有人能幫我做到這一點,我將非常感激!

    +1

    你想通過設置一個變量來完成什麼(你可以通過在查詢字符串中傳遞值來完成)?沒有AJAX或某種類型的回發,您無法設置服務器變量。 – MikeSmithDev 2013-02-27 15:49:36

    +0

    我想設置變量,以便當頁面(即加載時,超鏈接被選中)調出,我可以使用SQL查詢,選擇一個記錄,其中山寨的名稱等於我想要設置的變量,然後在頁面上顯示結果。對不起,如果我沒有說清楚,我很新的ASP網絡發展 – 2013-02-27 16:01:58

    回答

    2

    只需使用一個LinkButton,而不是超鏈接的...抓住click事件,並做你想做...

    例如:

    <asp:LinkButton ID="Cottage_NameLabel" runat="server" Text="whatever" onclick="Cottage_NameLabel_Click" /> 
    

    然後在代碼隱藏:

    protected void Cottage_NameLabel_Click(object sender, EventArgs e) 
        { 
         LinkButton btn = (LinkButton)sender; 
         Session["MyCottageName"] = btn.Text; 
         Response.Redirect("Cottage.aspx"); 
        } 
    

    在您的Cottage.Aspx頁面中,您可以檢查Session變量的值,如下所示:

    protected void Page_Load(object sender, EventArgs e) 
        { 
         if (Session["MyCottageName"] != null) 
         { 
          string name = (String)Session["MyCottageName"]; 
          ... 
         } 
    
    +0

    忘了提及我在vb.net做它,但我敢肯定,我將能夠解決如何做它在VB中,會讓你知道它如何去感謝! – 2013-02-27 16:15:42

    +0

    嘗試[this] - 它通常將C#轉換爲vb.net的功能不錯 – Blachshma 2013-02-27 16:18:35

    0

    您可以將名稱作爲查詢字符串變量傳遞給頁面。如果你走這條路線,你需要確保你URL編碼山寨名稱:

    <a href='/Cottage.aspx?name=<%# Server.UrlEncode(DataBinder.Eval(Container.DataItem, "Cottage_Name")) %>'><%# Eval("Cottage_Name") %></a> 
    

    ,然後cottage.aspx你可以得到山寨名稱:

    Dim cottageName As String = Request.QueryString("name") 
    

    這將是最好一個按鈕或其他回發解決方案,因爲它不需要回發然後重定向。

    相關問題