Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.net C#中,如何将参数从Javascript函数传递给onclick处理程序_C#_Javascript_Asp.net_.net - Fatal编程技术网

在ASP.net C#中,如何将参数从Javascript函数传递给onclick处理程序

在ASP.net C#中,如何将参数从Javascript函数传递给onclick处理程序,c#,javascript,asp.net,.net,C#,Javascript,Asp.net,.net,我在客户端有以下代码: <asp:imagebutton id="ctrlSend" runat="server" ImageUrl="Btn_New.gif" onclick="ctrlSend_Click"></asp:imagebutton> 这很好,但是我想添加一个动态参数,我将在客户端使用Javascript计算该参数,并将其传递给ctrlSend_Click函数 有人能解释一下怎么做吗?我已经探讨了如何使用CommandArgument,但我认为这不能通过J

我在客户端有以下代码:

<asp:imagebutton id="ctrlSend" runat="server" ImageUrl="Btn_New.gif" onclick="ctrlSend_Click"></asp:imagebutton>
这很好,但是我想添加一个动态参数,我将在客户端使用Javascript计算该参数,并将其传递给ctrlSend_Click函数


有人能解释一下怎么做吗?我已经探讨了如何使用CommandArgument,但我认为这不能通过Javascript调用预先设置。我希望在单击按钮时计算参数。

这是不可能的,因为javascript在服务器端执行完毕后在浏览器中运行。
为了将数据从javascript传递到服务器,必须发出ajax请求

这是不可能的,因为javascript在服务器端执行完毕后在浏览器中运行。
为了将数据从javascript传递到服务器,必须发出ajax请求

所以你不能用
命令参数来做这件事。您可以做的是拥有一个隐藏字段,使用javascript设置该字段,并在服务器端事件处理程序中访问该字段

.aspx

<asp:imagebutton id="ctrlSend" runat="server" ImageUrl="Btn_New.gif" onclick="ctrlSend_Click" OnClientClick="setParameter"></asp:imagebutton>
<input type="hidden" id="clickParameter" runat="server" />
C#代码隐藏

protected void ctrlSend_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    string param = clickParameter.value;
    //Cast and convert your parameter as needed from a string.
}

上面可能有一些语法错误,但这应该会让您朝着正确的方向前进。

因此您不能使用
命令参数来执行此操作。您可以做的是拥有一个隐藏字段,使用javascript设置该字段,并在服务器端事件处理程序中访问该字段

.aspx

<asp:imagebutton id="ctrlSend" runat="server" ImageUrl="Btn_New.gif" onclick="ctrlSend_Click" OnClientClick="setParameter"></asp:imagebutton>
<input type="hidden" id="clickParameter" runat="server" />
C#代码隐藏

protected void ctrlSend_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
    string param = clickParameter.value;
    //Cast and convert your parameter as needed from a string.
}

上面可能有一些语法错误,但这应该会让您走上正确的方向。

您打算如何调用javascript函数?这看起来更像ASP.net webforms而不是MVC,如果我错了,请纠正我。您打算如何调用javascript函数?这看起来更像是ASP.NETWebForms而不是MVC,如果我错了,请纠正我。我认为这不完全正确。您可以在点击按钮、表单提交等提交表单之前运行一些客户端javascript。这可以在隐藏的表单字段中设置一个值,然后从服务器端获取该值。你是对的,直接传递它是不可能的。是的,但是只有在点击按钮的情况下,它才会起作用,而在页面的初始呈现中,情况并非如此。目前尚不清楚OP希望在什么阶段设置此参数。我是在点击/提交时假设的……但你知道他们怎么说假设的!我得说那不完全是真的。您可以在点击按钮、表单提交等提交表单之前运行一些客户端javascript。这可以在隐藏的表单字段中设置一个值,然后从服务器端获取该值。你是对的,直接传递它是不可能的。是的,但是只有在点击按钮的情况下,它才会起作用,而在页面的初始呈现中,情况并非如此。目前尚不清楚OP希望在什么阶段设置此参数。我是在点击/提交时假设的……但你知道他们怎么说假设的!