ModalPopupExtender打开GridView行问题

时间:2012-10-19 11:29:51

标签: c# asp.net visual-studio-2010 gridview modalpopupextender

(我正在使用Lukinha RS的行解决方案)

当我点击gridview中的一行时,我在ModalPopupExtender打开之前得到一个回发,我不想要回发,但是你看到我使用的方法是原因。不幸的是,这是我能够将onClick应用于gridview行以打开MPE的唯一方法。

我遇到的另一个问题是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();
}

1 个答案:

答案 0 :(得分:0)

  

不幸的是,这是我能够获得onClick的唯一方式   应用于gridview行以打开MPE

错误。实际上,你可以在没有回发的情况下打开模态扩展器。 更改onclick属性值如下:

e.Row.Attributes.Add("onclick", String.Format("javascript:$find('{0}').show();", ModalPopupExtender1.ClientID));