我在gridview中有一个下拉列表。该列表具有硬编码值,并在更改索引时触发ChangeSelection()。
<asp:GridView ID="GridViewSkilagreinar" runat="server" AutoGenerateColumns="False" AllowPaging="False">
<Columns>
<asp:TemplateField ShowHeader="true" HeaderText="foo">
<ItemTemplate>
<asp:DropDownList ID="DropDownListAdgerd" runat="server" EnableViewState="false" AutoPostBack="true" Width="100px" OnSelectedIndexChanged="ChangeSelection">
<asp:ListItem Value="1">1</asp:ListItem>
<asp:ListItem Value="2">2</asp:ListItem>
<asp:ListItem Value="3">3</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在同一页面上,我还有一个按钮和几个LinkButtons。当我更改页面上下拉列表中的选项时,如果我选择&#34; 2&#34;从它我可以捕捉它,并在ChangeSelection函数内做我想要的。在这种情况下,我正在触发PDF下载。
但是,如果我现在按下页面上的按钮或LinkButtons,它们会一次又一次地触发OnSelectedIndexChanged函数,这是我不想要的。该按钮具有OnClick属性,该属性调用Button_Click函数,但它永远不会被调用如果我之前已经更改了下拉列表索引。
导致此问题的原因是什么?我试过制作选定的值&#34; 1&#34;在ChangeSelection函数中,在我完成处理&#34; 2&#34;选择,希望重置下拉列表,但它永远不会发生。
我觉得我需要以某种方式重置下拉列表,但我不确定如何去做。
编辑:当我选择&#34; 2&#34;从下拉列表中我调用一个函数,使用以下代码启动PDF下载:
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" + name_of_file);
HttpContext.Current.Response.AddHeader("Content-Type", "application/pdf");
HttpContext.Current.Response.BinaryWrite(bytes_to_be_downloaded);
HttpContext.Current.Response.End();
如果我删除了对此功能的调用,一切正常,但我没有得到我的PDF文件。我现在可以按下按钮和LinkButtons,他们按预期执行,即使&#34; 2&#34;仍然被选中。我错过了HttpContext调用中的内容吗?