我在我的应用程序中使用了一个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的支持提出了同样的问题,但他们在整整一周后没有回复我。当我运行应用程序时,我看到错误被抛出,我的应用程序崩溃了。网格的代码是:
<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>