2013-05-15 64 views
0

我第一次使用这个站点。我很欣赏我以前从用户那里得到的帮助,希望能够贡献并提出要求。现在,问题。需要一个asp.net控件来点击另一个asp.net控件中的按钮

我正在开发一个静态工具栏,它位于网页底部。目的是向购买某物的用户显示一些值,并为工具栏更新信息以反映选择。目前页面上有一个框可以做到这一点,但它位于顶部,用户将不得不连续滚动以查看选项出现,价格变化等。

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

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

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按钮的问题有很多,但似乎没有任何问题。

发生了什么是我已经得到它的点击工具栏上的重新计算按钮实际上是否刷新页面,但没有任何值更改。如果从购买页面(通常存在的位置)单击重新计算按钮,即使页面上的值确实存在,工具栏中的值也不会更改。如果在从主页面重新计算后从工具栏中点击重新计算按钮,则工具栏值将反映常规值。对页面的任何其他正常使用(例如自动刷新的复选框)都会在两处正确更改值。

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

提前感谢帮助!

+2

ASP.NET MVC不使用控件。另外,如果你真的把这个问题的范围缩小到一个特定的技术问题,你可能会得到更好的答案。 –

回答

0

在你其他的控制使公共财产,只有设置和你的工作控制调用它的按钮的单击事件,那你必须调用仅是公共财产其他控制。它应该是这样的:

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

您必须只在任何需要的地方访问此属性。

1

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

使用下面的代码:

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

这将触发对其他控制按钮被触发。

PS:一旦页面呈现在html中,确保id正确,因为visual studio会将控件中按钮的id添加为(控件的id)_(按钮的实际id)ie如果你的页面上,你已经引用控制,

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

您的HTML按钮(buttonID)的ID将control_buttonID,所以你需要使用(control_buttonID)jQuery中。

所以,你的代码将

$("#control_buttonID").click(function(){ 
    $("#control1_btnIdOtherControl").click(); 
}); 
相关问题