2013-07-18 195 views
2

嗯,我敢打賭,這是"This works on my machine"的情況。ASP.Net LinkBut​​ton在本地工作,但不在服務器上

的問題是:

我有一個LinkButtonGridView

<asp:TemplateField HeaderText="Website"> 
    <ItemTemplate> 
     <asp:LinkButton ID="L_Website" CausesValidation="true" runat="server" Text='<%# Eval("L_Website") %>' 
      CommandArgument="GoToWebsite" OnClientClick="return confirm('Are you sure you want to go to this Website?');" 
      CommandName="GoToWebsite"></asp:LinkButton> 
    </ItemTemplate> 
</asp:TemplateField> 

我的數據填充用DataReader

dr["L_Website"] = Convert.ToString(reader["L_Website"]); 

也許你還想看GoToWebsitecode:

protected void GV_Contacts_RowCommand(object sender, GridViewCommandEventArgs e) 
{ 
    string ID = string.Empty; 
    string status = string.Empty; 
    if (e.CommandName == "Edit") 
    { 
     //code here 
    } 
    else if (e.CommandName == "View") 
    { 
     //code here 
    } 
    else if (e.CommandName == "GoToWebsite") 
    { 
     LinkButton lb = (LinkButton)e.CommandSource; 
     GridViewRow gvr = (GridViewRow)lb.NamingContainer; 
     LinkButton LinkButton = gvr.Cells[8].Controls[1] as LinkButton; 
     if (LinkButton.Text.Substring(0, 3) == "www") 
     { 
      System.Diagnostics.Process.Start(LinkButton.Text); 
     } 
     else 
     { 
      System.Diagnostics.Process.Start("www." + LinkButton.Text); 
     } 
    } 
} 

它在本地機器上正常工作。 它顯示,如果我點擊它,本地版本進行確認,然後打開此頁面的新標籤。 在服務器(IIS 6.0)也被顯示正確的,那麼如果我點擊它,它也使得確認,但後來它打開與頁面的新選項卡。

如果我更改CausesValidation,它也不起作用。
如果我沒有OnClientClick,它也不起作用。
如果我把(盤旋)在LinkButton上,它會告訴我它回發。

已謝謝:)

回答

2

你是不是想 「客戶端/服務器」 等。

你正在做的是開始一個過程。哪個在您的本地開發機器上正常工作,因爲您坐在顯示器前面,可以看到這樣的過程。

你很可能開始在服務器上處理爲好,但有沒有人在那裏看到它們。登錄到服務器並觀察任務管理器。

你必須找到這將打開你的代碼的客戶端的鏈接,而不是在服務器端的解決方案。 (所有這些都可以用HTML和JavaScript完成,不需要回發)

+0

是的,如果我認爲你的回答是完全正確的...... 非常感謝,我會盡力爲此找到一種方法。然後JS會希望。 – DatRid

+0

哈哈,它確實在服務器上打開了一個iexplorer.exe ......有趣的是,我的錯誤是newb。 :) – DatRid

+1

只需編寫一個鏈接,使用目標屬性和現有的確認碼。 – Alexander

相關問題