C# 如何在link按钮的OnClientClick中调用java脚本函数(in.cs)?

C# 如何在link按钮的OnClientClick中调用java脚本函数(in.cs)?,c#,javascript,jquery,asp.net,linkbutton,C#,Javascript,Jquery,Asp.net,Linkbutton,我在.cs文件中编写如下脚本: StringBuilder script = new StringBuilder(); script.Append("<script type=\"text/javascript\"> function submitform(){"); script.Append(" document.forms['" + ((HtmlGenericControl)frm).Attributes["id"] + "'].submit();} </");

我在.cs文件中编写如下脚本:

 StringBuilder script = new StringBuilder();
 script.Append("<script type=\"text/javascript\"> function submitform(){");
 script.Append(" document.forms['" + ((HtmlGenericControl)frm).Attributes["id"] + "'].submit();} </");
 script.Append("script>");

编辑1:
分离关注点如果将应用程序移动到
java
ruby
,则应用程序的可视部分不应受到影响。这就是独立关注的问题

将客户端脚本写入客户端,而不是写入cs文件:

$('#<%= hl_process.ClientID %>').click(function(){
     ...
     $('#formId').submit();
     // if the button inside the form:
     this.form.submit(); // HTML5
     // Or:
     $(this).closest('form').submit(); 
     // if the button not inside the form :
     var class = $(this).attr('class');
     $('form.' + class).submit();
});
$('#')。单击(函数(){
...
$('#formId')。提交();
//如果窗体内的按钮:
this.form.submit();//HTML5
//或:
$(this).closest('form').submit();
//如果按钮不在表单中:
var class=$(this.attr('class');
$('form.'+类).submit();
});

分离关注点如果将应用程序移动到
java
ruby
,应用程序的可视部分不应受到影响。这就是独立关注的问题

将客户端脚本写入客户端,而不是写入cs文件:

$('#<%= hl_process.ClientID %>').click(function(){
     ...
     $('#formId').submit();
     // if the button inside the form:
     this.form.submit(); // HTML5
     // Or:
     $(this).closest('form').submit(); 
     // if the button not inside the form :
     var class = $(this).attr('class');
     $('form.' + class).submit();
});
$('#')。单击(函数(){
...
$('#formId')。提交();
//如果窗体内的按钮:
this.form.submit();//HTML5
//或:
$(this).closest('form').submit();
//如果按钮不在表单中:
var class=$(this.attr('class');
$('form.'+类).submit();
});

使用jquery绑定到click事件,而不是在服务器端执行此操作:

<a href="#" class="blah">Submit Me</a>
替代方法(更好地分离关注点)

在javascript中,我们找到父表单并提交它(可以在静态js文件中):


$('.submitter')。单击(函数(
$(this.parents('form').submit();
));

使用jquery绑定到click事件,而不是在服务器端执行此操作:

<a href="#" class="blah">Submit Me</a>
替代方法(更好地分离关注点)

在javascript中,我们找到父表单并提交它(可以在静态js文件中):


$('.submitter')。单击(函数(
$(this.parents('form').submit();
));


看起来像是一个典型的问题分离案例…为什么服务器处理客户端脚本?我在运行时根据一些参数创建表单。然后,我需要在客户端单击运行时创建的链接按钮的
后提交每个表单。好的。编辑后。。。将所有HTML部分移动到ASPX文件中,它的位置不在.cs文件中。如果将应用程序移动到
java
ruby
,则应用程序的可视部分不应受到影响。这就是
关注点分离
的含义。看起来像是一个典型的不好的关注点分离案例…为什么服务器处理客户端脚本?我在运行时根据一些参数创建表单。然后我需要在运行时创建的链接按钮的
客户端单击
后提交每个表单。好的。编辑后。。。将所有HTML部分移动到ASPX文件中,它的位置不在.cs文件中。如果将应用程序移动到
java
ruby
,则应用程序的可视部分不应受到影响。这就是关注点的不同之处。在运行时创建的每个表单都有不止一个表单,我想使用在运行时创建的特定链接按钮提交。不,按钮不在表单中,它是一个链接按钮form@just_name. 所以给按钮和表单赋予相同的类。并用它选择它,请参见我的update@just_name. 我认为您应该提出一个新的问题,即如何将所涉及的
DB
问题分开。这个问题针对的范围太广了。@请说出你的名字。它可以通过
ajax
完成。但是请打开一个包含所有相关代码和解释的新线程。祝你好运。在运行时创建的每个表单都有不止一个表单。我想提交在运行时创建的特定链接按钮。不,按钮不在表单中,它是一个链接按钮form@just_name. 所以给按钮和表单赋予相同的类。并用它选择它,请参见我的update@just_name. 我认为您应该提出一个新的问题,即如何将所涉及的
DB
问题分开。这个问题针对的范围太广了。@请说出你的名字。它可以通过
ajax
完成。但是请打开一个包含所有相关代码和解释的新线程。祝你好运。在运行时创建的每个表单都有不止一个表单,我想使用在运行时创建的特定链接按钮提交。如果我像在我的方法中一样创建表单,我可以使用你的第一次更新吗?我想在表单外创建链接,因为它是状态它取决于你在哪里创建链接以及链接如何附加到表单上页如果是在aspx中,请使用上面的gdoron代码。如果它位于代码隐藏中,请使用CreateCommForm().ClientID获取客户端id。您不能将表单提交到新窗口。但是你可以先打开窗户,然后提交表单。在运行时创建的每个表单都有多个表单。我想使用在运行时创建的特定链接按钮提交表单。如果我像在我的方法中一样创建表单,我可以使用您的第一次更新吗?我想在表单外添加链接,因为它是状态它取决于您创建链接的位置和方式附在页面上。如果是在aspx中,请使用上面的gdoron代码。如果它位于代码隐藏中,请使用CreateCommForm().ClientID获取客户端id。您不能将表单提交到新窗口。但是您可以先打开窗口,然后提交表单。
<script type="text/javascript">
$('.blah').click(function() {
   document.forms[0].submit();
});
</script>
protected Control CreateCommForm()
{
   ...
   column1.Controls.Add(frm);   

   HtmlGenericControl a = new HtmlGenericControl("a");
   a.Attributes["onclick"] = "$('#" + frm.ClientID + "').submit();";
   a.InnerText = "Submit me";
   frm.Controls.Add(a);
   return frm;
}
protected Control CreateCommForm()
{
   ...
   column1.Controls.Add(frm);   

   HtmlGenericControl a = new HtmlGenericControl("a");
   a.Attributes["class"] = "submitter";
   a.InnerText = "Submit me";
   frm.Controls.Add(a);
   return frm;
}
<script type="text/javascript">
$('.submitter').click(function( 
  $(this).parents('form').submit();
));
</script>