嗯,我敢打賭,這是"This works on my machine"的情況。ASP.Net LinkButton在本地工作,但不在服務器上
的問題是:
我有一個LinkButton
我GridView
:
<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
上,它會告訴我它回發。
已謝謝:)
是的,如果我認爲你的回答是完全正確的...... 非常感謝,我會盡力爲此找到一種方法。然後JS會希望。 – DatRid
哈哈,它確實在服務器上打開了一個iexplorer.exe ......有趣的是,我的錯誤是newb。 :) – DatRid
只需編寫一個鏈接,使用目標屬性和現有的確認碼。 – Alexander