我正在使用asp.net GridView控件。现在我需要编辑一些行数据。为此,我使用了这段代码:
<asp:LinkButton ID="btnEdit" Text="Edit" runat="server" CommandName="QuickEdit" OnClick="btnEdit_Click"
CommandArgument ='<%# ((CheckBox)(((GridViewRow) Container).Cells[4].Controls[0])).Checked %>'/>
btnEdit_Click
方法是:
protected void btnEdit_Click(object sender,EventArgs e)
{
LinkButton btn = (LinkButton)sender;
switch (btn.CommandName)
{
case "QuickEdit":
EditPanel.Visible = true;
GridPanel.Visible = false;
CheckBox cbRequiresState = (CheckBox)EditPanel.FindControl("checkRequiresState");
if (btn.CommandArgument =="True")
{
cbRequiresState.Checked = true;
}
else
{
cbRequiresState.Checked = false;
}
break;
}
}
现在,我需要将多个CommandArgument
参数传递给btnEdit_Click
方法。为此,我需要做什么?
请建议我在这种方法中利用这些论点的好方法。
答案 0 :(得分:5)
这是一个例子:
在你的aspx代码中:
<asp:ImageButton ID="btnSelect" runat="server" ImageUrl="~/Images/btnSelect.png" CommandName="Select" CommandArgument='<%# Container.DataItemIndex +";"+Eval("ID") %>' ToolTip="select" CausesValidation="False" /></ItemTemplate>
并在您的代码中:
string info = e.CommandArgument.ToString();
string[] arg = new string[2];
char[] splitter = { ';' };
arg = info.Split(splitter);
答案 1 :(得分:2)
您可以使用字符串并将值分隔为;
或其他字符。
答案 2 :(得分:0)
因为CommandArgument
是一个简单的字符串,所以将要传递的参数连接到事件中,并在其中加入某种分隔符。
然后在btnEdit_Click
中按分隔符分割值。
注意:选择sepatator,使其不是传递给事件的任何参数中包含的字符。