我使用iTextSharp将网格数据导出到PDF文件。我正在搜索billno,并且获取的数据与网格和控件有关(在ext.net中)。搜索可以有三种方式: 1.插入billno并在组合框中按Enter键 2.通过插入billno并在组合中单击触发器 3.通过从组合中选择billno 之后我点击ToPDF按钮导出数据。 如果我执行2& 3,它的工作正常,但是当我执行1时,窗口会出现标题 请求失败,状态文本 - 通信失败 。由于Grid数据也被导出,但是这个窗口出现了,我得到了。
我的代码如下 的的.cs 的
protected void ToPDF(object sender, EventArgs e)
{
//Code
}
的的.aspx 的
<ext:ComponentMenuItem ID="ComponentMenuItem1" runat="server">
<Component>
<ext:ComboBox ID="cmbSearchBillno" runat="server"
EmptyText="Select Bill No"
ForceSelection="true"
StoreID="BillMasterStore"
DisplayField="Billno" ValueField="BillId">
<Triggers>
<ext:FieldTrigger Icon="Search" />
</Triggers>
<Listeners>
<SpecialKey Fn="enterKeyPressHandler" />
</Listeners>
<DirectEvents>
<%--<SpecialKey OnEvent="enterKeyPressHandler" ShowWarningOnFailure="false" Timeout="60000" StopEvent="true">
<ExtraParams>
<ext:Parameter Name="key" Value="e.getKey()" Mode="Raw">
</ext:Parameter>
<ext:Parameter Name="BillNo" Value="this.getText()" Mode="Raw"></ext:Parameter>
</ExtraParams>
</SpecialKey>--%>
<Select OnEvent="ChangeBillno">
<ExtraParams>
<ext:Parameter Name="BillNo" Value="record.id" Mode="Raw"></ext:Parameter>
</ExtraParams>
</Select>
<TriggerClick OnEvent="SearchBillDetails" >
<ExtraParams>
<ext:Parameter Name="BillNo" Value="this.getText()" Mode="Raw"></ext:Parameter>
</ExtraParams>
</TriggerClick>
</DirectEvents>
</ext:ComboBox>
</Component>
</ext:ComponentMenuItem>
ToPDF按钮
<ext:Button ID="btnPdf" runat="server" Text="To PDF" AutoPostBack="true" OnClick="ToPDF" Icon="PageWhiteAcrobat">
<Listeners>
<Click Fn="saveData" />
</Listeners>
</ext:Button>
脚本
<script type="text/javascript">
var enterKeyPressHandler = function (f, e) {
if (e.getKey() == e.ENTER)
{
var billno=this.getText();
Ext.net.DirectMethods.SearchBillno(billno);
e.stopEvent();
this.send();
}
}
var saveData = function () {
GridData.setValue(Ext.encode(GridService.getRowsValues({selectedOnly : false,excludeId:true})));
};
</script>
答案 0 :(得分:0)
是的,当你用enter键搜索时会抛出错误 这是因为您在侦听器中使用直接方法来填充网格。 通过查看您的代码,我可以看到您使用过之前评论的直接事件特殊密钥。使用直接事件特殊密钥并且它将起作用