DataGrid调用javascript,然后将不会调用代码隐藏

时间:2019-12-05 21:57:21

标签: javascript c# asp.net datagrid postback

我有一个称为PendingControl的ASP.Net控件。在PendingControl上有一个DataGrid。此DataGrid具有

OnItemCommand="dgPending_ItemCommand"

及其模板列之一具有一个ImageButton:

<asp:TemplateColumn>
        <ItemTemplate>
            <asp:ImageButton runat="server" ImageUrl="~/images/btn-reject.png" CommandName="RejectOrder" ID="btnReject" />
        </ItemTemplate>
    </asp:TemplateColumn>

图像按钮调用一个JavaScript函数ConfirmRejection,该函数附加在PageLoad上:

ImageButton btnreject = new ImageButton();
foreach (DataGridItem item in dgPending.Items)
{
    btnreject = (ImageButton)item.FindControl("btnReject");
    btnreject.Attributes.Add("onclick", "ConfirmRejection('height=200,width=625, left=650,top=200','');return false");
}

function ConfirmRejection(width, height, scrollbars) {
    var paramz = "width=" + width + ", height=" + height + ", scrollbars=" + scrollbars + ", resizable, status";                          
    var nUrl = 'ConfirmRejection.aspx';
    return window.open(nUrl, "AffNew", paramz);
}

此函数打开的窗口使用window.opener在PendingControl上调用另一个javascript函数:

window.opener.ProcessFromPopup(tbReason.value); 

这是PendingControl的第二个功能:

function ProcessFromPopup(reason) {  

    var hid = document.getElementById('<%=hfReason.ClientID%>');    
    hid.value = reason;
}

我的问题是ProcessFromPopup运行后,未调用dgPending_ItemCommand。我尝试添加

__doPostBack('btnReject.ClientID');

到ProcessFromPopup,但不起作用。我不能使用WebMethod和ScriptManager,因为dgPending_ItemCommand不能是静态方法(它使用Session并调用各种非静态方法)。

我该怎么做?我需要Ajax吗?还是有其他解决方法?

0 个答案:

没有答案
相关问题