решал подобную проблему.
Датагрид:
<asp:datagrid
id=ASPxGrid1
autogeneratecolumns="False"
onitemdatabound = "ASPxGrid1_OnItemDatabound"
font-size="8pt"
enableviewstate="True"
runat="server" >
<headerstyle forecolor="Blue" backcolor="LightSteelBlue" />
<columns>
<asp:templatecolumn HeaderText="Производитель">
<itemtemplate>
<input id='<%# DataBinder.Eval(Container.DataItem,"ProgramID") %>' type="hidden" />
<asp:Label id = "ProgramID" text = '<%# DataBinder.Eval(Container.DataItem,"ProgramID") %>' visible="False" runat="server" />
<asp:label id = "Vendor" text = '<%# DataBinder.Eval(Container.DataItem,"Vendor") %>' runat="server" />
</itemtemplate>
</asp:templatecolumn>
В "основном" датагриде в ItemDatabound прописано редактирование
грида doubleclick'ом:
// Если пользователь админ, позволяем редактировать датагрид во внешнем окне
if (User.IsInRole("VIMPELCOM_MAIN\\SMSInterface_Edit")) {
Label ProgramID = (Label) e.Item.FindControl("ProgramID");
TableRow RowItem = (TableRow)e.Item.FindControl("ProgramID").Parent.Parent;
RowItem.Attributes.Add("OnDblClick","EditSoft(" + ProgramID.Text + ");");
}
Обработчик:
<SCRIPT>
<!--
function EditSoft(ProgramID)
{
q = showModalDialog( 'EditSoft.aspx?ProgramID=' + ProgramID ,0,'dialogHeight:250px; dialogWidth:600px; status: no; scroll: yes; unadorned: no;');
document.Form1.submit();
return 0;
}
-->
</SCRIPT>
В EditSoft - серверные контролы, в конце обработчиков нажатий на кнопки окно закрывается:
Page.RegisterClientScriptBlock("close","<script language=\"Javascript\">window.close();</script");
|