c# - 当在网格视图内的更新面板内时,Asp 图像按钮单击事件不会为所有行触发
问题描述
我面临一个奇怪的问题。在网格视图内,我有一些图像按钮,该按钮再次位于更新面板内,用于加载一些日历内容,部分回发,无需任何页面刷新。此部分回发适用于前几行,但在几行之后,可以说大约 15 行按钮单击事件未命中,只有断点进入页面加载事件和整个页面刷新。
每行都有大量数据,但我例如显示更新面板结构。请帮我解决这个问题。我尝试了各种方法来修复它,但仍然面临同样的问题。
<asp:GridView ID="GVSales" runat="server" AllowPaging="false" AutoGenerateColumns="false" DataKeyNames="UserId" BackColor="#FFFFCC" EmptyDataText="No salesman selected to show" OnRowDataBound="GVSales_OnRowDataBound" OnDataBound="GVSales_AfterDataBound">
<PagerSettings Visible="false" />
<AlternatingRowStyle BackColor="#99CCFF" />
<Columns>
<asp:BoundField DataField="GroupName" Visible="false" />
<asp:TemplateField>
<ItemTemplate>
<table width="100%" border="1px" cellpadding="0" cellspacing="0" style="color: Black; font-family: Arial; text-align: center">
<tr>
<td colspan="18" style="text-align: left">
<asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div>
<div id="divNavigateCal" runat="server" style="float: right; display: none">
<asp:HiddenField ID="hdnDaydiff" runat="server" Value="1" />
<div class="blink" id="BlinkLoad" style="width: 100px; padding-top: 10px; vertical-align: top; display: none">Please Wait...</div>
<asp:ImageButton ID="imgBtnPrevious" AutoPostback="false" runat="server" class="Previous" CommandArgument='<%# Eval("UserId")%>' Customid='<%# Eval("UserId") %>' OnClientClick='<%# "GetCustomerID(" + Eval("UserId") + ");" %>' ImageUrl="~/admin/images/cal_previous.gif" OnClick="imgBtnPrevious_Click" />
<asp:ImageButton ID="imgBtnNext" runat="server" class="Next" CommandArgument='<%# Eval("UserId")%>' Customid='<%# Eval("UserId") %>' OnClientClick='<%# "GetCustomerID(" + Eval("UserId") + ");" %>' ImageUrl="~/admin/images/cal_next.gif" OnClick="imgBtnNext_Click"/>
</div>
<input type="button" class="ShowCalendar" value="Show/Hide Calendar" runat="server" data-id='<%# Eval("UserId")%>' /> <asp:Label ID="lbl_alert1" runat="server" Text="Started this week with low meetings" ForeColor="Red" Font-Bold="true" Width="300" Visible='<%# (Convert.ToBoolean(Eval("Alert1"))) %>'></asp:Label>
<asp:Label ID="Label1" runat="server" Text="Did not create 7 meetings on monday." ForeColor="Red" Font-Bold="true" Width="300" Visible='<%# (Convert.ToBoolean(Eval("Alert2"))) %>'></asp:Label>
<table id="calendar">
<tr>
<td>
</td>
</tr>
</table>
</div>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="imgBtnPrevious" EventName="Click" />
<asp:AsyncPostBackTrigger ControlID="imgBtnNext" EventName="Click" />
</Triggers>
</asp:UpdatePanel>
</td>
</tr>
</table>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
在这里,我使用部分回发更新表日历内容,用于 imgBtnPrevious imgBtnNext 的按钮单击事件,该事件具有类似日历的结构。此代码适用于第 14 - 15 行,但此问题随后出现。
注意:每行中还有其他大量数据,但这里我只显示了更新面板结构。
更新
我已进一步调查此问题并禁用所有更新面板以检查更新面板是否导致问题,但我发现它不是由于更新面板。按钮单击事件在 14 -15 行后未触发。甚至尝试使用行命令,仍然相同。这个问题的根源可能是什么?任何解决方案?请帮忙。每当我单击按钮时,它只会重新加载页面,但单击事件不会触发调试器。
解决方案
我发现了这个问题。网格视图的 OnRowdataBound 有一些代码在该表中附加了额外的行,这导致了这个奇怪的问题。
推荐阅读
- reactjs - Typescript如何在通过道具传递时使功能成为可选
- java - dropwizard中的多个数据库
- python - 在将我的机器人部署到 heroku 时如何解决此错误?
- swift - 我们什么时候需要使用 JSONEncoder 和 JSONDecoder 和 UserDefaults
- firebase - 在 Flutter 的垂直 ScrollView 内的水平 ListView 中显示来自 Firestore 的数据
- c# - FileInfo.CopyTo 如何检测覆盖
- oracle - REST API 插入无法使用 node-oracledb
- matplotlib - Matplotlib 中的两个窗口(plt.figure)
- php - htaccess 重写到缓存的图像,否则调整大小
- kubernetes - k8s 上的 Prometheus 自定义指标服务发现