2

グリッドビューに TemplateField 列があり、その中にボタンがあります。

キー値はありません (確かに私が設計したものではありません) が、一方、各列を比較するときに冗長性はありません。それらはイベントであり、何かの「開始日」と「終了日」があるためです。それは同時に2回起こることはありませんでした。

これらの値とすべてを使用して選択することは既に考えましたが、ボタンが特定の関数に約 5 つの引数を渡すようにしたいだけです。

私はテストしました:

<asp:Button  CommandArgument='<%# Eval("day")%>'  ID="Button2" runat="server" Text="Button" />

そして、それは適切に機能し、クリックされた行の日が渡され、次の方法で取得できます。

e.CommandArgument.ToString();

GridView_RowCommandハンドラー で。

複数の引数を渡すにはどうすればよいですか? 私は分離文字と連結することを考えました (それほど悪くはないでしょう) が、それを行う方法がまだわからないことに加えて (貧弱なソリューションに投資したくありませんでした)、よりスマートなソリューションが必要です。

4

1 に答える 1

2

最も簡単な方法は、ボタンを介して GridView 行にアクセスし、その方法で値にアクセスすることです。

void Button2_Click(object o, EventArgs e) {
    Button myButton = (Button)o;
    GridViewRow row = (GridViewRow)muButton.Parent.Parent;

    string value1 = row.Cells[0].Text;
    string value2 = row.Cells[1].Text;
    ...
}
于 2010-04-05T12:37:32.673 に答える