【问题标题】:ASP.Net LinkButton works local but not on ServerASP.Net LinkBut​​ton 在本地工作,但不在服务器上
【发布时间】:2013-07-18 10:08:29
【问题描述】:

好吧,我敢打赌这是"This works on my machine" 的情况。

问题是:

我的GridView 中有一个LinkButton

<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 上,它表明它会进行回发。

已经谢谢你了:)

【问题讨论】:

    标签: c# asp.net postback linkbutton


    【解决方案1】:

    你不是在想“客户端/服务器”之类的。

    你正在做的是开始一个过程。哪个在您的本地开发机器上工作并且可见,因为您坐在监视器前面并且可以看到这样的过程。

    您很可能也在服务器上启动进程,但那里没有人看到它们。登录服务器并观看任务管理器。

    您必须找到在代码的客户端而不是服务器端打开链接的解决方案。 (所有这些都可以使用 HTML 和 JavaScript 完成,无需 PostBack。)

    【讨论】:

    • 是的,如果我仔细考虑一下,您的回答是完全正确的......非常感谢,我会尝试找到解决方法。那么 JS 会不会有希望呢。
    • 哈哈好吧,它确实总是在服务器上打开一个 iexplorer.exe ... 有趣的是,我作为新手的错。 :)
    • 只需写一个链接,使用目标属性,以及你现有的确认码。
    • 可以使用 '' 填充目标和 Textattribute 并使用 dr["L_Website"] = Convert.ToString(reader[ "L_网站"]);那么呢?
    • 是的。你需要CausesValidation吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    • 2016-09-13
    • 2018-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多