перейти на внешний сайт, если это гиперссылка - PullRequest
3 голосов
/ 22 августа 2009

У меня есть ссылка «просмотр» на страницу aspx в виде сетки для каждой строки.

В зависимости от типа ресурса 1) Файл или 2) Гиперссылка, она должна либо загрузить файл, либо перейти по указанной гиперссылке.

<asp:TemplateField HeaderText="View">
                <ItemTemplate>
                    <a id="View" href="../resources/ResourceFile.aspx?Id=<%# Eval("Id")%>" target="_blank">View</a>
                </ItemTemplate>
    </asp:TemplateField>

У меня это работает для типа файла, но как мне перенаправить на внешнюю ссылку, такую ​​как "www.yahoo.com", если это гиперссылка.

В коде позади

if(resource.ResourceType.ToLower().Equals("hyperlink")){
                    // what should i do here?
               // the link is stored in resource.value
                }

РЕДАКТИРОВАТЬ: понял, что ссылка должна иметь префикс http: // для работы. Чувствую себя глупо:)

Ответы [ 3 ]

6 голосов
/ 23 августа 2009

Понял, что ссылка должна иметь префикс http:// для работы.

3 голосов
/ 22 августа 2009

Имеет ли объект ресурса доступ к URL-адресу, на который вы хотите перенаправить? Если это так, вы можете использовать Response.Redirect.

if(resource.ResourceType.ToLower().Equals("hyperlink")){
   Response.Redirect(resource.Url);
}
0 голосов
/ 22 августа 2009

Добавьте гиперссылку asp.net к шаблону элемента. Затем обработайте событие RowDataBound для динамического изменения свойства NavigateURL гиперссылки. Таким образом, вы избежите отправки.

<asp:TemplateField HeaderText="View">
    <ItemTemplate>
        <asp:Hyperlink runat="server" id="View" target="_blank">View</a>
    </ItemTemplate>
</asp:TemplateField>

void GridView_RowDataBound(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
        HyperLink hl = (HyperLink)e.Row.FindControl("View");
        hl.NavigateUrl = "Link to file or url based on resource type";
    }
}

[http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowdatabound.aspx][1]

[1]: пример MSDN

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...