C# 如何在CommandArgument中使用两个参数并将其提取以在查询中使用
我有以下ASP.net页面,其中显示了名称和最后四个ssn编号,并在中继器中有一个按钮:C# 如何在CommandArgument中使用两个参数并将其提取以在查询中使用,c#,asp.net,sql,C#,Asp.net,Sql,我有以下ASP.net页面,其中显示了名称和最后四个ssn编号,并在中继器中有一个按钮: <tr> <td><%# Eval("name").ToString() %></td> <td><%# Eval("ssn3").ToString() %></td> <td><asp:Button ID="btnGeneratePDF" runat="server" Tex
<tr>
<td><%# Eval("name").ToString() %></td>
<td><%# Eval("ssn3").ToString() %></td>
<td><asp:Button ID="btnGeneratePDF" runat="server" Text="Generate PDF" CommandArgument='<%# Eval("name").ToString() + ", " + Eval("ssn3").ToString() %>' onclick="btnGeneratePDF_Click" /></td>
</tr>
我得到以下错误:
错误1“btngeneratedf\u Click”匹配委托”系统没有重载。EventHandler“C:\Users\usrs\Documents\Visual Studio 2012\Projects\PDFForms\searchcreate.aspx 41
如何解决错误
protected void btnGeneratePDF_Click(object sender, EventArgs e)
在单击事件中将CommandEventArgs
更改为EventArgs
试试这个
protected void btnGeneratePDF_Click(object sender, EventArgs e)
{
//Get the reference of the clicked button.
Button button = (sender as Button);
//Get the command argument
string commandArgument = button.CommandArgument;
}
在单击事件中将CommandEventArgs
更改为EventArgs
试试这个
protected void btnGeneratePDF_Click(object sender, EventArgs e)
{
//Get the reference of the clicked button.
Button button = (sender as Button);
//Get the command argument
string commandArgument = button.CommandArgument;
}
您可以使用命令名字段存储第二个参数,或者使用ASP:HiddenField、CustomProperty ect您可以使用命令名字段存储第二个参数,或者使用ASP:HiddenField、CustomProperty ect因此,如果您在
Repeater
控件中有此布局,则应如何处理命令事件
<asp:Repeater runat="server" ID="Repeater1"
OnItemCommand="btnGeneratePDF_Click"
...
因此,如果您在中继器
控件中有此布局,则以下是您应该如何处理命令事件
<asp:Repeater runat="server" ID="Repeater1"
OnItemCommand="btnGeneratePDF_Click"
...
您正在尝试将命令事件执行为单击事件。
正确答案应该是:
<tr>
<td><%# Eval("name").ToString() %></td>
<td><%# Eval("ssn3").ToString() %></td>
<td><asp:Button ID="btnGeneratePDF" runat="server" Text="Generate PDF" CommandArgument='<%# Eval("name").ToString() + ", " + Eval("ssn3").ToString() %>' OnCommand="btnGeneratePDF_Command" /></td>
</tr>
创建此新事件时,您将注意到事件参数更改为CommandEventArgs。
您可以继续代码尝试将命令事件执行为单击事件。
正确答案应该是:
<tr>
<td><%# Eval("name").ToString() %></td>
<td><%# Eval("ssn3").ToString() %></td>
<td><asp:Button ID="btnGeneratePDF" runat="server" Text="Generate PDF" CommandArgument='<%# Eval("name").ToString() + ", " + Eval("ssn3").ToString() %>' OnCommand="btnGeneratePDF_Command" /></td>
</tr>
创建此新事件时,您将注意到事件参数更改为CommandEventArgs。
“您可以继续编写代码”按钮
单击“委托”需要一个EventArgs
参数而不是CommandEventArgs
来处理按钮发送的命令,订阅中继器的命令事件如果我将其更改为EventArgs
我会收到以下错误:`error 1'System.EventArgs'不包含'CommandArgument'的定义,并且找不到接受'System.EventArgs'类型的第一个参数的扩展方法'CommandArgument'(您是否缺少using指令或程序集引用?)C:\Users\usrs\Documents\Visual Studio 2012\Projects\PDFForms\searchcreate.aspx.cs 38 25 C:\…\PDFForms`使用参数化查询!您对SQL注入非常开放,甚至有一个名为SSN…@SiKni8的列,其中[name]='“+k+”和[ssn3]='+C+”";
…否.按钮
单击委托需要一个EventArgs
参数而不是CommandEventArgs
要处理按钮发送的命令,请订阅中继器的命令事件如果我将其更改为EventArgs
我得到以下错误:`error 1's System.EventArgs'不包含找不到“CommandArgument”和接受“System.EventArgs”类型的第一个参数的扩展方法“CommandArgument”(是否缺少using指令或程序集引用?)C:\Users\usrs\Documents\visualstudio 2012\Projects\PDFForms\searchcreate.aspx.cs 38 25 C:\…\PDFForms`使用参数化查询!您对SQL注入非常开放,甚至有一个名为SSN…@SiKni8的列,其中[name]='“+k+”'和[ssn3]='“+C+”“;
…否…如果我将其更改为EventArgs
则会出现以下错误:`error 1'System.EventArgs'不包含'CommandArgument'的定义,并且找不到接受'System.EventArgs'类型的第一个参数的扩展方法'CommandArgument'(是否缺少using指令或程序集引用?)C:\Users\usrs\Documents\visualstudio 2012\Projects\PDFForms\searchcreate.aspx.cs 38 25 C:\…\PDFForms`sender
将是按钮,强制转换并查询它的CommandArgument
属性。为什么不改为处理Repeater的事件?它提供命令参数naturally@Andrei当前位置好,我确实非常怀疑is处理程序甚至会按原样连接-我建议你添加一个答案…@Andrei请给我一个我可以使用的示例:)如果将其更改为EventArgs
,则会出现以下错误:`error 1'System.EventArgs'不包含'CommandArgument'的定义,并且找不到接受'System.EventArgs'类型的第一个参数的扩展方法'CommandArgument'(是否缺少using指令或程序集引用?)C:\Users\usrs\Documents\visualstudio 2012\Projects\PDFForms\searchcreate.aspx.cs 38 25 C:\…\PDFForms`sender
将是按钮,强制转换然后查询它的CommandArgument
属性。为什么?为什么不处理中继器的事件呢?它提供命令参数naturally@Andrei:好地方,事实上,我非常怀疑这个处理程序是否会按原样连接-我建议你添加一个答案…@Andrei请给我一个我可以使用的示例:)我通过按钮更改为:
,并在我的中继器中添加了OnItemCommand
,我应该如何更改btnGeneratorPDF\u Click的函数?@SiKni8,事实上你不需要改变它,那里没有什么特别的。虽然我认为MessageBox调用不起作用MessageBox只在从VS运行时起作用,所以我想:)我应该在按钮中添加什么?没有点击事件?@SiKni8,没有,在这种情况下,你不需要为按钮处理点击事件OK,这是固定的,我想。。。现在查询为空白:/I将打开一个新问题并发布一个链接。谢谢。我按按钮更改为:
,并在我的中继器中添加了OnItemCommand
,我应该如何更改btnGeneratorPDF的功能?单击?@SiKni8,事实上你不需要更改它,那里没有任何具体的内容。虽然我认为MessageBox调用不起作用MessageBox只在从VS运行时起作用,所以我想:)我应该在按钮中添加什么?没有点击事件?@SiKni8,没有,您不需要为该ca中的按钮处理点击事件