2010-06-04 1 views
0

У меня есть ссылка в Gridview, которую я хочу открыть в проводнике Windows (или explorer.exe).Linkbutton, чтобы открыть проводник Windows из Gridview

<asp:GridView ID="GridView1"runat="server" > 
    <Columns> 
     <asp:TemplateField> 
      <ItemTemplate> 
       <asp:LinkButton ID="DeploymentLocation" runat="server" CommandName="OpenLink" 
        Text='<%# Eval("DeploymentLocation") %>' CommandArgument='<%# Eval("DeploymentLocation") %>' /> 
      </ItemTemplate> 
     </asp:TemplateField> 
    </Columns> 

и в коде у меня есть это:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
    { 
      Process.Start("explorer.exe", "/n," + e.CommandArgument.ToString()); 
    } 

Очевидно, что это не работает, как Process.Start работает только если у меня есть полные права доступа, и т.д., и т.д. Я слышал, что Я могу использовать Javascript для этого, но пока этого не удалось. В принципе, я хочу, чтобы именно точная ссылка, которая отображается в сетке, открывается при нажатии. Любая помощь приветствуется!

Спасибо!

ответ

0

мне удалось решить это легко:

<ItemTemplate> 
    <asp:HyperLink Text='<%# Eval("DeploymentLocation") %>' id="DeploymentLocation" runat="server" Target="_blank" NavigateUrl='<%# "file:///" + Eval("DeploymentLocation").ToString() %>' ></asp:HyperLink> 
</ItemTemplate> 
0

Поскольку вы обнаружили, что запуск процессов на клиентском компьютере с веб-сайта невозможен. Вы можете перенаправить хотя на эту веб-страницу:

protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    Response.Redirect(e.CommandArgument.ToString()); 
} 

Другим вариантом является использование ActiveX control, но это будет работать только на Internet Explorer.

0

(1) Пожалуйста, не используйте javascript для запуска локального исполняемого файла (особенно explorer.exe, который является важным системным файлом), потому что иногда брандмауэр/антивирусное программное обеспечение будет считать ваше действие опасным/опасным.

(2) В любом случае выполнение пользовательской программы клиента через ваш веб-сайт/веб-приложение всегда не так дружелюбен. Я думаю, вы хотите выполнить «explorer.exe», чтобы открыть окно для просмотра локального каталога? Если это так, вы можете имитировать окно проводника Windows на своей веб-странице.