1

アプリケーションで Obout グリッドを使用しています。クライアント側のイベントを設定しましたが、他のすべてのクライアント側のイベントは完全に機能しますが、OnClientCallbackError.I はサーバー側にメソッドを持っており、実行前にデータベース側で削除を検証します。そのコードは次のとおりです。

protected void DeleteRecord(object sender, GridRecordEventArgs e)
        {
            //check if the record is not used in any other relationship
            var id = Convert.ToInt32(e.Record["ID"].ToString());
            var result =_areaRepository.RelationshipCheck("env_Area", id);
            var desc = e.Record["Description"].ToString();
        string message;
            if(result <= 0)
            {
                //show error message
                _areaRepository.UpdateArea(id, desc, true);
               }
            else
            {
                message = "Record cannot be  deleted";
               throw new Exception(message);
            }
        }

これはルックアップ テーブルの削除です。上記のコードが行うことは、削除されるレコードが他の関係で使用されていないかどうかを確認することです。使用されていない場合は、DLTD というフィールドがあり、これを true に更新して、ユーザーがこのレコードを二度と見ないようにします。この部分は機能します。

レコードがリレーションシップで使用されている場合、例外メッセージがスローされます。Obout サイトの例に基づいて説明します。

以下のような関数がある場合:

function onCallbackError(errorMessage, commandType, recordIndex, data) {
        alert(errorMessage);
        callbackErrorWasRaised = true;
    }

そして、あなたが持っているグリッドのクライアント側イベントで:

<ClientSideEvents ExposeSender="True" OnClientAdd="OnAdd" OnClientEdit="OnEdit" OnClientCallbackError="onCallbackError" />

警告メッセージは問題なく表示されるはずですが、私のものは機能していません。コードから更新パネルを削除しました。また、マスター ページには次のようなスクリプト マネージャーがあります。

<asp:ScriptManager ID="ScriptManager1" runat="server" ScriptMode="Release" EnablePageMethods="True" EnablePartialRendering="True">
  </asp:ScriptManager>

Obout スイートを購入しました。Obout のサポートに同じ質問をしましたが、1 週間経っても回答がありません。アプリケーションを実行すると、エラーがスローされ、アプリケーションがクラッシュすることがわかります。グリッドのコードは次のとおりです。

 <cc1:Grid ID="grid1" runat="server" CallbackMode="true" Serialize="true" AutoGenerateColumns="false"
    OnRebind="RebindGrid" OnInsertCommand="InsertRecord" OnDeleteCommand="DeleteRecord"
    OnUpdateCommand="UpdateRecord" EnableTypeValidation="False">
    <ClientSideEvents ExposeSender="True" OnClientAdd="OnAdd" OnClientEdit="OnEdit" OnClientCallbackError="onCallbackError" />

<TemplateSettings RowEditTemplateId="tplRowEdit" />
    <Columns>
        <cc1:Column DataField="ID" Visible="false" Width="150" ReadOnly="true" HeaderText="ID">
        </cc1:Column>
        <cc1:Column DataField="Code" AllowGroupBy="true" Wrap="false" ShowFilterCriterias="true"
            ParseHTML="false" Align="left" HeaderAlign="left" Width="200" HeaderText="Code">
            <TemplateSettings RowEditTemplateControlId="txtCode" RowEditTemplateControlPropertyName="value" />
        </cc1:Column>
        <cc1:Column DataField="Description" Visible="True" AllowGroupBy="true" Wrap="false"
            ShowFilterCriterias="true" ParseHTML="false" Align="left" HeaderAlign="left"
            Width="250" HeaderText="Description">
            <TemplateSettings RowEditTemplateControlId="txtDescription" RowEditTemplateControlPropertyName="value" />
        </cc1:Column>
        <cc1:Column DataField="UnitMeasureID" Visible="true" ShowFilterCriterias="true" HeaderAlign="left"
            ParseHTML="false" Align="left" Width="190" HeaderText="UnitMeasureID">
            <TemplateSettings RowEditTemplateControlId="txtUnitMeasureID" RowEditTemplateControlPropertyName="value" />
        </cc1:Column>
        <cc1:Column DataField="DLTD" Visible="false" ShowFilterCriterias="true" HeaderAlign="left"
            ParseHTML="false" Align="left" Width="110" HeaderText="DLTD">
        </cc1:Column>
        <cc1:Column HeaderText="EDIT" Width="150" AllowEdit="true" AllowDelete="true" />
    </Columns>
 <Templates>
        <cc1:GridTemplate runat="server" ID="tplRowEdit">
            <Template>
                <table class="rowEditTable">
                    <tr>
                        <td valign="top">
                            <fieldset style="width: 275px; height: 175px;">
                                <legend>New Mining Area Information</legend>
                                <table>
                                    <tr>
                                        <td>
                                            Code:
                                        </td>
                                        <td>
                                            <input type="text" id="txtCode" style="width: 150px;" class="ob_gEC" />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            Description:
                                        </td>
                                        <td>
                                            <input type="text" id="txtDescription" style="width: 150px;" class="ob_gEC" />
                                        </td>
                                    </tr>
                                    <tr>
                                        <td>
                                            Unit Measure:
                                        </td>
                                        <td>
                                            <cc3:OboutDropDownList ID="txtUnitMeasureID" runat="server" Height="150" Width="100%"
                                                DataSourceID="unitMeasureODS" DataTextField="Description" DataValueField="ID">
                                            </cc3:OboutDropDownList>
                                        </td>
                                    </tr>
                                    <tr>
                                        <td colspan="2">
                                            <br />
                                        </td>
                                    </tr>
                                </table>
                            </fieldset>
                        </td>
                    </tr>
                    <tr>
                        <td colspan="2" align="center">
                            <input type="button" value="Save" onclick="grid1.save()" class="tdText" />
                            <input type="button" value="Cancel" onclick="grid1.cancel()" class="tdText" />
                        </td>
                    </tr>
                </table>
            </Template>
        </cc1:GridTemplate>
    </Templates>
</cc1:Grid>
4

0 に答える 0