【问题标题】:how to pass a parameter by pressing a button如何通过按下按钮传递参数
【发布时间】:2011-05-18 13:11:17
【问题描述】:

我有这种情况:我在页面上显示了数据库中的许多行。只是创建动态线(<% foreach (res in DBVar) %>)。每行都有一个按钮。每个按钮只使用 1 OnClick 方法。我真的不关心这些按钮的名称(值),但我不能接受,我如何将参数(例如来自 DB (res.ID) 的行的 ID)从 .aspx 页面传递到 OnClick 方法. (使用 LINQ to SQL) 我试图将我的参数带到带有“<input type="button" value="<%= "string"+DBVar.ID%>”的按钮的名称(值)等等。 runat=server 甚至无法获取名称(值)上的变量,因为我只使用了输入法。

【问题讨论】:

  • 让 onclick 方法调用一个接受 id 作为变量的脚本,然后将传递给 id 的参数绑定。 onclick='dostuff(<%=DBVar.ID %>);'

标签: c# asp.net


【解决方案1】:

使用 OnCommand 事件并分配 CommandArgument

 <asp:Button ID="Button1" runat="server" Text="Submit" CommandArgument='<%= res.ID %>' OnCommand="Button1_Click" />

在代码后面

protected void Button1_Click(Object sender, CommandEventArgs e) 
{
string ID=e.CommandArgument.ToString();
}

【讨论】:

  • 这会将值作为“字符串”传入,因此在事件处理程序上,它将传入“ 而不是 res 实例对象的 ID。你能请告诉我们如何正确完成这项工作?
  • @RobertGreen 你猜出来了吗?我有同样的问题:/
  • 请注意,CommandArgument 在外边缘使用单引号。这允许对 eval 进行完整引用,例如:CommandArgument=''
【解决方案2】:

【讨论】:

  • 谢谢。但我已经试过了。他无法获取 CommantArguements="" 上的参数,但是谢谢
  • 你能说得更具体些吗?这到底是什么意思?编译错误?消息是什么?
  • asp:Button with runat=server 在 CommandValue="" 中看不到参数,它只接受值 "" 和不是真正的参数...输入类型=按钮相同。
  • 我还没关注你 Simon,你能用你使用的确切代码和 aspx 编辑你的问题吗?
【解决方案3】:

查看此链接

passing dynamic values for each row in listview

他做了同样的事情,它还展示了如何访问后面代码中的值

【讨论】:

    猜你喜欢
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 2021-02-19
    • 1970-01-01
    • 2013-12-12
    • 1970-01-01
    相关资源
    最近更新 更多