2010-08-29 11 views
13

एएसपीएक्स पेज में हाइपरलिंक कंट्रोल की नेविगेटोरियल प्रॉपर्टी इनलाइन को गतिशील रूप से अकेले स्टैंड (ग्रिडव्यू में नहीं) कैसे सेट कर सकता हूं?डायनेमिकली सेट हाइपरलिंक कंट्रोल की नेविगटेरियल प्रॉपर्टी इनलाइन

मैंने निम्नलिखित करने का प्रयास किया है, लेकिन यह काम नहीं किया।

<asp:HyperLink id="MyLink" 
    NavigateUrl="../mypage.aspx?id=<%= pageid %>" 
    runat="server">My Page</asp:HyperLink> 

उत्तर

28

आप codebehind में ऐसा कर सकता है:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
     string pageid = "123"; 
     MyLink.NavigateUrl = string.Format("../mypage.aspx?id={0}", pageid); 
    } 
} 

अद्यतन:

अब जब कि @Marko Ivanovski मुझे टिप्पणी में कहा कि यह हाइपरलिंक एक GridView जो कि मैंने शुरू में नोटिस नहीं किया था सबसे आसान डेटा बाइंडिंग (<%# वाक्य रचना) का उपयोग किया जाएगा के अंदर है:

<asp:TemplateColumn> 
    <ItemTemplate> 
     <asp:HyperLink 
      id="MyLink" 
      NavigateUrl='<%# Eval("pageid", "~/mypage.aspx?id={0}") %>' 
      runat="server"> 
     My Page 
     </asp:HyperLink> 
    </ItemTemplate> 
</asp:TemplateColumn> 

इस मामले में pageid डेटा स्रोत की एक संपत्ति है।


अद्यतन 2:

तुम सच में एक सर्वर साइड नियंत्रण की जरूरत है? कैसे के बारे में:

<a href="<%= this.ResolveUrl("~/mypage.aspx?id=" + pageid) %>"> 
    My Page 
</a> 
+0

उन्होंने उल्लेख किया कि लिंक ग्रिड व्यू के अंदर है :) – Marko

+0

@ मार्को, ठीक है, इसे इंगित करने के लिए धन्यवाद। मैंने सवाल को सावधानी से नहीं पढ़ा :-) –

+0

कोई जांच नहीं - एक अच्छे समाधान के लिए +1 – Marko

4

आप वास्तव में अपनी codebehind फ़ाइल में एक साधारण स्ट्रिंग विधि लिख सकते हैं।

उदाहरण

public string formatUrl(string pageId) { 
    return "../mypage.aspx?id=" + pageId; 
} 

और फिर की तरह उपयोग ..

<asp:HyperLink id="MyLink" NavigateUrl="<%= formatUrl(pageid) %>" runat="server">My Page</asp:HyperLink> 

प्रदान की pageid मौजूद

+5

यह कुछ मैं करने की कोशिश की है, लेकिन कोड को चलाने के नहीं प्राप्त करता है और यह के रूप में बाहर आता है: http: // localhost/MySite/<% = formatUrl (pageid)%> – dtc

+0

@ मेटानाइटो: वही। क्या आपने इस समस्या को हल किया है? – abatishchev

0
<asp:TemplateField HeaderText="Name" HeaderStyle-Width="100"> 
    <ItemTemplate> 
     <a href="f.aspx?id=<%# DataBinder.Eval(Container, "DataItem.i")%>"> 
      <asp:Label ID="lblN" Font-Underline="true" runat="server" Width="80px" Text='<%#DataBinder.Eval(Container.DataItem,"n")%>' /> 
     </a> 
    </ItemTemplate> 
</asp:TemplateField> 
संबंधित मुद्दे