0

我第一次使用该网站。我感谢我之前从用户那里得到的帮助,并希望能做出贡献并提出要求。现在,对于这个问题。

我正在开发一个位于网页底部的静态工具栏。目的是向购买某物的用户显示几个值,并让工具栏更新信息以反映选择。当前页面上有一个框可以执行此操作,但它位于顶部,用户必须不断滚动才能看到选项出现、价格变化等。

当单击自动刷新页面的某些复选框按钮时,该值与该框中的价格更新得很好(由于这些复选框更改了代码片段)。然而,一些可能影响价格的事情需要点击页面上的“重新计算”按钮。此页面上的信息通过控制器放在页面上。我正在创建的工具栏是一个单独的控件。

我想要做的是在工具栏中有一个按钮,它将模仿重新计算的购买按钮的操作。我试过这样做:

  Code on control page for toolbar: 
<input type="button" id="buttonID" class="buttonClass" runat="server"   onclick="__doPostBack('<%= btnIDOtherControl.ClientID %>','OnClick');" value="Recalculate" />

Code on control with the purchase info:
<asp:ImageButton ID="btnIdOtherControl" runat="server" ImageUrl="~/image.jpg"
                                AlternateText="Recalculate" OnClick="recalcFunction_Click" />

这只是当前的迭代。在我没有 __doPostBack 的“OnClick”部分之前,我有“”。我还尝试使用一些 jQuery。有很多关于从 javascript 触发 ASP.net 按钮的问题,但似乎没有一个有效。

发生的事情是我已经达到了单击工具栏中的重新计算按钮实际上刷新页面的程度,但没有任何值发生变化。如果我从购买页面(通常存在的地方)单击重新计算按钮,工具栏中的值不会改变,即使页面上的值会改变。如果我在从主页重新计算后点击工具栏上的重新计算按钮,则工具栏值会反映常规值。页面的任何其他正常使用(例如自动刷新的复选框)都会在两个位置正确更改值。

如果需要更多信息,请告诉我。

提前感谢帮助!

4

2 回答 2

1

这必须通过使用 javascript 或 jQuery 来完成。

使用下面的代码:

$("#buttonID").click(function(){
   $("#btnIdOtherControl").click();
});

这将触发其他控件上的按钮被触发。

PS:确保页面在html中呈现后id是正确的,因为visual studio会将控件中按钮的id附加为(控件的id)_(按钮的实际id),即如果在您的页面上您已将控件引用为

<user:control id="control" runat="server">

html 上的按钮 (buttonID) 的 id 将是 control_buttonID,因此您需要在 jQuery 中使用它 (control_buttonID)。

所以你的代码将是

$("#control_buttonID").click(function(){
   $("#control1_btnIdOtherControl").click();
});
于 2013-05-15T18:45:10.877 回答
0

在您的其他控件上仅设置一个公共属性并在其中调用按钮的单击事件,然后在您的工作控件上,您必须仅调用其他控件的该公共属性。它应该是这样的:

public void PublicPropertyCallingEvent
{
    set
    {
        Button1_ClickEvent(null,null);
    }
}

您只能在需要的地方访问此属性。

于 2013-05-17T05:15:05.717 回答