2010-04-30 100 views
0

我有一个包含动态添加的用户控件的页面。在这些用户控件中,有一些表单元素,简单的<input>标签或复杂的第三方控件(例如Telerik RadDatePicker)(技术细节结尾)。设置没有asp:面板的默认提交按钮

这些控件目前被识别为基于ValidationGroup字符串设置的同一表单的一部分。我的问题是,如何获得这些表单元素,并一起提交Enter并提出正确的回发事件?

我无法使用DefaultButton面板属性,因为我没有在控件服务器端提供的提交按钮的ID。我想我可能可以像这样使用jQuery的clientside:
<input onKeyPress="javascript:if (event.keyCode == 13) {$(this).change(); $('#submitclientid').click();}" ...>

但我不知道如何做到这一点的第三方控件。

更多技术细节:
每个表单元素都在单独的DNN模块中。可以使用模块间通信来传递数据服务器端,从而导致多个模块一起工作,作为页面上单个逻辑表单的一部分。

回答

0

显然,要做到这一点是通过客户端JS中的问题建议(但你可以跳过了jQuery,而使用__dopostback)的唯一途径。

0

您是否尝试过设置DefaultButton属性Form

例子:

<form defaultButton="myButtonControl" runat="server"> 
... 
</form> 
+0

不能做到的。对于恰好在同一页面上的单独表单,可能会有多个默认按钮。 – 2010-05-05 13:16:12

+0

我想我可能会误解:单个窗体如何具有*多个*默认按钮? DefaultButton的目的是让一个按钮作为它所属的对象的默认按钮。你可以有多种形式 - 每种形式都有自己独特的DefaultButton - 但我不认为有多个DefaultButton是可能的(甚至是普通的)。 在客户端脚本中,您可能需要的属性(如果您想自己分配默认按钮,如果您需要每个表单多于一个,则听起来像是必须这样做)。客户端ID。 – Richard 2010-05-05 15:14:29

+0

1.我无法访问表单控件。 2.页面上只有一个窗体控件,我不能添加另一个窗体控件。 3.完全可以通过标签设置多个默认按钮。然而,我无法做到这一点,因为我无法设置id(我也不能使用面板围绕控件,因为它们被框架动态添加到页面中)。 4.我可以使用客户端ID,但不知道如何与第三方控件(虽然我怀疑这是唯一的解决方案,所以我必须学会如何) – 2010-06-21 19:12:34

0

通过代码。

ASPX: 1窗体(Form),2个按钮(Button1的& Button2的)

aspx.cs:

protected void Page_Load(object sender, System.EventArgs e) 
{ 
    form1.DefaultButton = Form.FindControl("Button2").UniqueID; 
}