3

私は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。そのために私は何をする必要がありますか?そして、そのメソッドでこれらの引数を利用する良い方法を教えてください。

4

3 に答える 3

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);
于 2013-01-11T10:50:23.040 に答える
2

;文字列を使用して、または別の文字で値を区切ることができます。

于 2013-01-11T10:41:24.880 に答える
0

は単純な文字列であるためCommandArgument、イベントに渡したい引数を連結して、それらの間にある種のセパレータを入れます。

次に、btnEdit_Clickセパレーターで値を分割します。

注:イベントに渡されるパラメーターのいずれにも文字が含まれないように区切り記号を選択してください。

于 2013-01-11T10:47:33.797 に答える