В моем gridview в c # можно редактировать одну строку.
<asp:TemplateField ItemStyle-HorizontalAlign="Center">
<ItemTemplate>
<asp:ImageButton
ID="imgbtnEdit"
CommandName="Edit"
runat="server"
ImageUrl='<%# Eval("Stopped").ToString().Equals("1") ?
"/aspnet/img/edit_1.gif" :
"/aspnet/img/edit_2.gif" %>'
OnClientClick="if (!confirm('Confirm ?')) return false;" />
</ItemTemplate>
</asp:TemplateField>
protected void gv_RowEditing(object sender, GridViewEditEventArgs e)
{
string sID = gv.DataKeys[e.NewEditIndex].Value.ToString();
string queryString = "Default2.aspx?sID=" + sID.ToString();
string newWin = "var Mleft = (screen.width/2)-(1200/2);
var Mtop = (screen.height/2)-(700/2);
window.open('" + queryString + "','_blank',
'height=600,width=600,
status=yes,toolbar=no,scrollbars=yes,menubar=no,
location=no,top=\'+Mtop+\',
left=\'+Mleft+\';');";
ClientScript.RegisterStartupScript(this.GetType(), "pop", newWin, true);
}
В событие связывания строк Я добавил это условие, когда значение ячейки номер два равно нулю:
protected void gv_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton img = (ImageButton)e.Row.FindControl("imgbtnEdit");
if (e.Row.Cells[2].Text.Equals("0"))
{
img.ImageUrl = "/aspnet/img/stop.gif";
img.Width = 18;
img.Height = 18;
img.Enabled = true;
e.Row.Cells[1].Attributes.Add("onClick", "alert('Cell 1 Clicked');");
}
}
}
Но при нажатии на изображение stop.gif
сначала открывается предупреждение с сообщением Confirm?
, а затем предупреждение с сообщением Cell 1 Clicked
и открывается в всплывающем окне на странице asp Default2.aspx для редактирования строки .
В этом случае мне нужно:
- Открыть только оповещение
Cell 1 Clicked
;
- Открыть новую страницу aspx Default3.aspx .
Как это решить?
Заранее благодарю за любую помощь.