(行の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();
}