首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASPxGridView CustomCallback

ASPxGridView CustomCallback
EN

Stack Overflow用户
提问于 2017-02-07 06:52:06
回答 2查看 2.4K关注 0票数 1

这是我的ASPxGridView的aspx代码

代码语言:javascript
复制
<dx:ASPxGridView ID="dgJournalList" runat="server" ClientInstanceName="dgJournalList" 
    OnCustomCallback="dgJournalList_CustomCallback"
    OnCustomJSProperties="dgJournalList_CustomJSProperties" 
    KeyFieldName="LineNo" AutoGenerateColumns="False">
    <SettingsPager Visible="False">
    </SettingsPager>
    <SettingsDataSecurity AllowDelete="False" AllowEdit="False" AllowInsert="False" />
    <Columns>
        <dx:GridViewDataTextColumn FieldName="ItemNo" VisibleIndex ="1" 
            ReadOnly="true" Visible="true">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="PostingDateStr" VisibleIndex ="2" 
            ReadOnly="true" Visible="true">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="EntryTypeStr" VisibleIndex ="3" 
            ReadOnly="true" Visible="true">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="DocumentNo" VisibleIndex ="4" 
            ReadOnly="true" Visible="true">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="LocationCode" VisibleIndex ="5" 
            ReadOnly="true" Visible="true">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="Qty" VisibleIndex ="6" 
            ReadOnly="true" Visible="true">
        </dx:GridViewDataTextColumn>
        <dx:GridViewDataTextColumn FieldName="UOM" VisibleIndex ="7" 
            ReadOnly="true" Visible="true">
        </dx:GridViewDataTextColumn>
    </Columns>
    <ClientSideEvents EndCallback ="onEndCallback(s, e)" />
</dx:ASPxGridView>

来自javascript的函数

代码语言:javascript
复制
onButtonClick = function (args)
{
    switch (args)
    {
        case 'refresh':
            dgJournalList.PerformCallback('Refresh');
            break;
    }
}

以及回调的方法

代码语言:javascript
复制
protected void dgJournalList_CustomCallback(object sender, ASPxGridViewCustomCallbackEventArgs e)
{
    string[] param = e.Parameters.Split(separator, StringSplitOptions.None);
    BOResponse objResponse = new BOResponse();

    switch (param[0])
    {
        case "Refresh":
            objResponse = GetListJournal(null);
            if (objResponse.MsgCode != 0)
            {
                dgJournalList.JSProperties["cpErrMsg"] = objResponse.MsgDesc;
            }
            dgJournalList.DataSource = JournalList;
            dgJournalList.DataBind();
            dgJournalList.FocusedRowIndex = 0;
            break;
        }            
    }

在执行刷新操作时,我的应用程序不会回调,而是执行回发,因为在调试时,没有到达回调方法的断点;它击中了Page_Load方法的一个断点。

我的代码哪里出错了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-07 09:49:31

你看到的是正常的行为。回发意味着完整的页面重新加载。你观察过你的情况吗?根据您发布的代码,您不应该这样做。您应该只看到网格区域重新加载。

Page_InitPage_Load事件将在您在Javascript中调用dgJournalList.PerformCallback('Refresh');之后触发。然后,该控件将传递给您的dgJournalList_CustomCallback方法。

如果不希望在网格的自定义回调期间执行Page_InitPage_Load逻辑,那么将以下检查添加到这些事件处理程序中:

代码语言:javascript
复制
if (!IsPostBack && !IsCallback)
{
    // your code which is run ONLY at initial page load should be put here
}

如果需要在某些确实会导致回发的按钮单击时运行Page_Init和Page_Load代码,则从上述条件中删除IsPostBack部件。

关于这一主题的更多信息:

  1. ASP.NET页面生命周期概述 - MS
  2. 回调概念 - DevExpress doc
票数 1
EN

Stack Overflow用户

发布于 2017-02-23 20:36:54

按钮AutoPostback属性应为false,以避免页面回发。

代码语言:javascript
复制
<dx:ASPxButton id="btnSave" runat="server" AutoPostback="false"/>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42083503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档