【问题标题】:ASP.NET Link Button change on jQuery sliderjQuery 滑块上的 ASP.NET 链接按钮更改
【发布时间】:2014-02-12 12:21:29
【问题描述】:

我的页面中有两个 jQuery 滑块 - 用户将是一个宽度和高度,然后单击一个按钮,该按钮应该转到一个新 URL,并将它们的值作为查询字符串参数。

所以我的页面上有两个 asp HiddenFields,我也设置了滑块的值 - 这似乎工作正常。

<asp:linkbutton ID="bmiLink" class="action-button" Text="Click for BMI" ToolTip="View your BMI" runat="server" OnClick="btnBMI_Click" />

然后我的代码背后有以下 C#:

    protected void btnBMI_Click(object sender, EventArgs e)
    {
        //Get Values from Hidden Fields
        string weight = weight .Value;
        string height= height.Value;

        bmiLink.PostBackUrl = string.Format("/BMIPage?{0}={1}&{2}={3}", QueryStringConstants.Weight, weight , QueryStringConstants.Height, height);
    }

当我第一次加载页面时,滑块值都为零,如果我将鼠标悬停在按钮上 - 链接显示为 -

javascript: __doPostBack('ct100$ct100$bodyContent$formContent$bmiLink',")

如果我将滑块值更改为体重 150 和身高 180,我希望按钮链接得到更新。实现这一目标的最佳方法是什么?

它现在的工作方式 - 我必须单击获取值的按钮,然后返回页面并将滑块重置为 0,但更新按钮上的链接以包含正确的查询参数。那么有没有一种方法可以轻松地动态设置由滑块设置的值驱动的按钮上的链接?

【问题讨论】:

  • 为什么不在客户端更改链接?只需几个查询语句即可。

标签: c# javascript jquery asp.net webforms


【解决方案1】:

好吧,你可以考虑在客户端上做所有事情,所以在你的按钮中做:

<asp:LinkButton .. OnClientClick="postback(this, event);" />

function postback(sender, e) {
   //you may have to use e.stopPropagation() and e.preventDefault() to prevent the default postback operation

   var val = /* jquery expression to get the value */
   __doPostBack("<%= Button.UniqueID %>", val);
}

然后它会从客户端获取价值。然后,您可以将其更改为您想要的任何内容。

【讨论】:

  • 谢谢 - 使用了这个想法 - 刚刚改变并做了一个 document.location.href = val;而不是 __doPostBack
【解决方案2】:

将 btnBMI_Click 事件处理程序的最后一行更改为:

Response.Redirect(string.Format("http://domain.com/BMIPage?{0}={1}&{2}={3}", QueryStringConstants.Weight, weight , QueryStringConstants.Height, height));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-27
    • 2012-12-01
    • 1970-01-01
    • 2011-10-23
    • 2018-04-06
    • 1970-01-01
    • 1970-01-01
    • 2015-07-04
    相关资源
    最近更新 更多