0

(行のonclick機能に対するLukinha RSのソリューションを使用しています)

グリッドビュー内の行をクリックすると、ModalPopupExtender が開く前にポストバックが表示されますが、ポストバックは必要ありませんが、使用する方法が原因であることがわかります。残念ながら、グリッドビュー行に onClick を適用して MPE を開くことができる唯一の方法です。

私が抱えているもう1つの問題は、MPEが開いていることです。ポップアップパネルの「閉じる」ボタンをクリックすると、ページがリロードされるだけで、同じポップアップパネルが開きます。

 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    GridViewRow row = e.Row;
    if (row.DataItem == null)
    {
        return;
    }

    try
    {
        switch (e.Row.RowType)
        {
            case DataControlRowType.Header:
                break;

            case DataControlRowType.DataRow:
                e.Row.Attributes.Add("onmouseover", "this.style.cursor='hand'");
                e.Row.Attributes.Add("onclick", Page.ClientScript.GetPostBackEventReference(GridView1, "Select$" + e.Row.RowIndex.ToString()));
                break;
        }
    }

    catch
    {
        return;
    }

そして、ここに私のSelectedIndexChangedがあります

    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
{
    GridViewRow row = ((GridView)sender).SelectedRow;
    ModalPopupExtender mpe = (ModalPopupExtender)row.FindControl("ModalPopupExtender1");
    mpe.Show();
}
4

1 に答える 1

0

残念ながら、MPEを開くためにonClickをgridview行に適用することができた唯一の方法です

間違っています。実際には、ポストバックなしでモーダル エクステンダーを開くことができます。属性値を次のように変更onclickします。

e.Row.Attributes.Add("onclick", String.Format("javascript:$find('{0}').show();", ModalPopupExtender1.ClientID));
于 2012-10-19T11:41:17.810 に答える