2014-01-18 2 views
0

Я новичок в ASP.NET. У меня проблема с NavigateUrl.NavigateUrl в ASP.Net

<td align="right" valign="middle"> 
    <p id="posCstmr"> 
     <asp:HyperLink ID="hlnkContact" CssClass="addbtn-cmplist" runat="server" NavigateUrl='<%# "Actions/Contact.aspx?ContactID=" + Eval("ContactID") + "&CompanyID=" + Eval("CompanyID") %>' Text="View"></asp:HyperLink> 
    </p> 
</td> 

Когда я нажимаю, чтобы просмотреть следующую hlnkContact, он перенаправляет к следующей ссылке с заданными значениями, которые в норме.

[HTTP: // локальный: 1426/Действия/Contact.aspx ContactID = 78724 & CompanyID = 92971?]

Но я хочу, чтобы сохранить эти значения в переменных сеанса на Page_Load случае Contact.aspx.

if (!Page.IsPostBack) 
{ 
    Session["ContactID"] = String.IsNullOrEmpty(Request.QueryString["ContactID"].ToString()) ? String.Empty : Session["ContactID"]; 
} 

Но я не могу хранить переменную Session на Page_Load потому что NavigateUrl показывают значения после загрузки страницы.

Пожалуйста, помогите мне.

ответ

1

же тип вопроса был дан ответ HERE, вы можете настроить, как показано ниже:

[Предполагая, что TD находится внутри любого DataBound контейнера, иначе Eval не будет работать]

Изменить разметку это:

<td align="right" valign="middle"> 
    <p id="posCstmr"> 
     <asp:LinkButton ID="LinkButton1" CssClass="addbtn-cmplist" runat="server" 
      Text="View" CommandName="Link" CommandArgument='<%#Eval("ContactID") + ";" + Eval("CompanyID") %>' 
      OnClick="ButtonLink_Click" /> 
    </p> 
</td> 

Код:

protected void ButtonLink_Click(object sender, System.EventArgs e) 
{ 
    LinkButton lb = (LinkButton)sender; 
    string[] arguments = lb.CommandArgument.Split(';'); 
    string ContactID = arguments[0]; 
    string CompanyID = arguments[1]; 

    //Save in session 
    Session["ContactID"] = ContactID ; 
    Session["CompanyID"] = CompanyID ; 

    //Redirect 
    Response.Redirect(string.Format("Actions/Contact.aspx?ContactID={0}&CompanyID={1}", ContactID, CompanyID)); 
} 
+0

Спасибо afzalulh, Он хранит значения в переменных Session, но я столкнулся с другой проблемой. Отображаемые формы контактов Пустые или пустые. Его без каких-либо элементов управления даже без малейших элементов управления, показывающих белую страницу. Есть идеи? [http: // localhost: 1426/Actions/Contact.aspx? ContactID = 78724 & CompanyID = 92971] – Raja

+0

Что вы имеете в Page_Load? Попробуйте ввести «localhost: 1426/Actions/contacts.aspx» ContactID = 78724 & CompanyID = 92971' в браузере и посмотреть, загружается ли страница. – afzalulh

Смежные вопросы