0

私は 2 つの ASP.NET Grid ビューを持っています。これらのビューには Image-button が含まれており、どちらも Edit On-click イベントを呼び出します。オンクリック イベントは次のようになります。

protected void Edit(object sender, EventArgs e)
{
    ImageButton ibtn1 = sender as ImageButton;

    using (GridViewRow row = (GridViewRow)((ImageButton)sender).Parent.Parent)
    {
        txtMessageID.ReadOnly = true;
        txtMessageID.Text = row.Cells[2].Text;
        txtReference.Text = row.Cells[6].Text;
        buttonClicked.Text = ibtn1.ID.ToString();
        popup.Show();
    }
}

この唯一の目的は、ModalDialogBox を起動し、グリッド ビューのキー項目をクリックすることです。私の問題は、グリッドの 1 つに Cells[6] (参照) がないため、失敗することです。私がする必要があるのは、ボタンのクリックがどのグリッド (ID) から来たかをチェックするこのセルの周りにステートメントをラップすることです。

複数のグリッドからの単一のメソッド呼び出しが許可されないため、行コマンドは使用していません。私の質問は、このメソッド内でクリックされているイメージ ボタンからグリッド ID を取得する方法です (上記を参照)。

4

1 に答える 1

0

Gridview の RowCommand を使用して終了し、次を使用して必要なものを取得しました。

rotected void Edit(オブジェクト送信者, GridViewCommandEventArgs e) { ImageButton ibtn1 = ImageButton としての送信者;

    GridView grd = sender as GridView;

    string gridName = grd.ClientID;

    string buttonId = e.CommandName;

    using (GridViewRow row = (GridViewRow)((ImageButton)e.CommandSource).NamingContainer)
    {
        txtMessageID.ReadOnly = true;
        txtMessageID.Text = row.Cells[2].Text;
        if (gridName == "grdMessageDups")
        {
            txtReference.Text = row.Cells[6].Text;
        }
        buttonClicked.Text = ibtn1.ID.ToString();
        popup.Show();
    }
}
于 2013-06-19T11:11:21.467 に答える