event-handling 相关问题

事件处理是关于处理源与一个或多个订户之间的消息的编码样式。源中的点侦听器提供了一种方式,订阅代码可以使用从源引发的消息。

Next js useState 在点击按钮时不起作用,事件处理

我正在尝试在导航栏中添加菜单按钮 问题是当我尝试单击图像时没有任何反应 这是我的菜单条码 “使用客户端” 从“重新...

回答 1 投票 0

Android 中的 onTouch、onLongClick 一起使用

我将 ImageView 动态添加到父布局中,并使用 onTouch 对添加的图像执行放大/缩小操作。 我想删除添加的视图及其 onLongPress 。

回答 7 投票 0

JavaScript 中默认选项选择时未触发下拉更改事件

我正在使用 vanilla JavaScript 开发动态表过滤功能,其中我使用下拉菜单来过滤表中显示的数据。每个下拉菜单都有一个默认选项(带有空字符串值...

回答 1 投票 0

当我第二次点击按钮时图标没有改变

以上是默认时的图标。当我点击打开类别时,它工作得很好。 但当我再次单击按钮关闭下拉菜单时,问题就出现了。下拉菜单关闭,但...

回答 1 投票 0

挂钩中附加的事件侦听器内的反应状态更改会停止默认行为

我创建了一个反应钩子来处理 div 外部的点击。为此,我在挂钩内附加了一个事件监听器,并且正在更新事件监听器调用中组件的状态...

回答 1 投票 0

React - `createPortal` 和 `document.body` 导致点击事件立即触发

我的应用程序有一个名为“打开模式”的按钮。单击此按钮时,将使用 createPortal 将模式附加到 document.body。演示链接 一旦模式被安装(即 isOpen === true),我

回答 2 投票 0

如何有效/正确地处理多个嵌套的基于列表的菜单/导航的任何列表项的点击事件?

抱歉,如果我的问题确实是针对新手级别的...... 我有一个 3 级列表来构建菜单,但我不想使用 href。 我想改用特定的属性并调用 javascript 函数

回答 2 投票 0

这个问题上eventListener和event.target的区别

我试图解决 Js 中的一个简单问题,我需要在 html 上旋转 js 中的字符串(仅),但是我面临着这两个事件处理程序的问题(我调用 e.. .

回答 1 投票 0

这个问题上eventListener和event.targe的区别

我正在尝试解决 Js 中的一个简单问题,我需要在 html 上旋转 js 中的字符串(仅),但是我面临着这两个事件处理程序的问题(我正在调用 e.. .

回答 1 投票 0

JavaFx:自定义事件要么不被触发,要么不被监听

最小代码示例: 公共类 HelloApplication 扩展应用程序实现 EventHandler { 公共类 MyEvent 扩展事件 { 公共静态最终

回答 1 投票 0

启用框输入以实现实时响应

我正在尝试对其进行设置,以便当我在文本框中输入消息时,它会注册并向我发送文件中的答案。 导入 tkinter 从随机导入 randint 将 tkinter 导入为 tk 来自 PIL 我...

回答 1 投票 0

应用父 useState 函数时,useState 不起作用

我有一个票证子类,它在没有票证更改后设置总金额我在这里面临的问题是 setNumber 似乎不起作用,除非 setTotal 被注释掉,我...

回答 1 投票 0

在 C++ Builder 中覆盖事件处理程序

在 Codegear C++ Builder 中,我尝试扩展 TMemo VCL 类以在 OnKeyDown 事件期间执行某些功能。我已经设置了该控件并能够将其添加到表单等中。

回答 2 投票 0

使用 Dagster 进行近实时应用程序

一直在尝试检查是否有人能够在实时流应用程序上使用 Dagster 编排。我已经能够使用批处理位来实现,但没有得到任何文档...

回答 1 投票 0

使用 JavaScript 为目标元素及其子元素实现背景颜色

我有一个 HTML 元素的层次结构,我希望当鼠标左键单击此层次结构中的某个元素时,只有该特定元素的背景颜色应该改变。我想...

回答 1 投票 0

为什么 mouseMoveEvent 在 PyQt5 中什么都不做

我尝试在PyQt5和Python3.5中使用mouseMoveEvent和mousePressEvent,但是当我点击鼠标时什么也没有。我的代码如下,有什么问题吗? 从 PyQt5 导入 QtWidgets,...

回答 2 投票 0

从 QGraphicsView 转到 QMainWindow 现在 keyPressEvent 没有看到箭头键

我正在尝试了解 PyQt4 中的事件处理,并偶然发现了一个案例 在我更改类定义后,keyPressEvent 会看到除箭头键之外的所有键。 从查看所有键: ...

回答 1 投票 0

由中继器生成的 ASP.NET DropDownList 在创建后未触发 OnSelectedIndexChanged

我正在处理一个棘手的错误。我在 .aspx 文件中使用 Repeater 创建了一个 ASP DropDownList: 我的页面.aspx 我正在处理一个棘手的错误。我在 .aspx 文件中使用 Repeater 创建了一个 ASP DropDownList: 我的页面.aspx <asp:Repeater ID="rptTemplateFields" runat="server" DataSource='<%# rptrDataSource %>' OnItemDataBound="rptTemplateFields_OnItemDataBound"> <ItemTemplate> <asp:DropDownList ID="ddlRepeater" runat="server" AppendDataBoundItems="true" AutoPostBack="True" OnSelectedIndexChanged="ddlRepeater_SelectedIndexChanged" width="360" Visible="False"> <asp:ListItem Text="" Value="" /> </asp:DropDownList> </ItemTemplate> </asp:Repeater> 我在代码隐藏中使用以下内容填充这些下拉菜单: mypage.aspx.cs protected void rptTemplateFields_OnItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { dynamic field = e.Item.DataItem; BugFieldName fieldName = field?.FieldName; string fieldContent = field?.FieldContent; var allowedValues = GenerateAllowedValues(fieldName); if (!fieldName.IsNullOrUnsetValue() && !allowedValues.IsNullOrEmpty()) { var ddl = e.Item.FindControl("ddlRepeater") as DropDownList; ddl.ID = "_ddlField" + fieldName; ddl.Attributes.Add("Name", "_ddlField" + fieldName); ddl.ClientIDMode = ClientIDMode.Static; ddl.DataSource = allowedValues; ddl.SelectedValue = allowedValues.Contains(fieldContent) ? fieldContent : null; ddl.Visible = true; ddl.DataBind(); } } } protected void ddlRepeater_SelectedIndexChanged(object sender, EventArgs e) { var ddlRepeater = sender as DropDownList; var state = (string)ViewState[ddlRepeater.Attributes["Name"]]; if (state != ddlRepeater.SelectedItem.Text) { ViewState[ddlRepeater.Attributes["Name"]] = ddlRepeater.SelectedItem.Text; } } 问题是我第一次单击下拉列表并更改项目(立即创建和数据绑定后),触发页面加载并擦除 ddl.SelectedValue 等状态,并且 DropDownList 的“OnSelectedIndexChanged”事件处理程序执行不火。 在此页面加载之后,DropDownList DO 中的后续更改会立即触发 OnSelectedIndexChanged 并保留列表的状态。我想象回发和数据绑定发生了一些奇怪的事情,但我不确定我哪里出了问题。 到目前为止,我已经尝试使用其他事件处理程序,但没有任何运气。我已经确认确实发生了页面加载并且它是回发。我将 <%@ Page ViewStateMode="Enabled" %> 添加到我的 aspx 文件中。我还尝试在中继器上使用 ItemCommand 监听器。这也没有火。 好的,这个问题看起来是您在标记中设置了中继器的数据源。因此,对于任何回发,您的重新加载和重新绑定代码都会再次运行,这会导致您所做的任何选择丢失(重新绑定会一次又一次地重新运行行数据绑定代码)。因此,您所做的任何更改都会因回发而丢失。 简单的解决方案是将数据绑定到后面代码中的中继器,并且仅一次。 因此,说出这个简单的标记: <div style="float: left; width: 30%"> <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound"> <ItemTemplate> <h4>Booking Infomration</h4> <asp:Label ID="lblPerson" runat="server" Width="200px" Text='<%# Eval("FirstName") + " " + Eval("LastName") %>'> </asp:Label> <asp:Label ID="Label1" runat="server" Text="Hotel:" Style="margin-left: 30px"> </asp:Label> <asp:DropDownList ID="cboHotel" runat="server" DataValueField="ID" DataTextField="HotelName" AutoPostBack="true" OnSelectedIndexChanged="cboHotel_SelectedIndexChanged"> </asp:DropDownList> <br /> <hr style="height: 2px; border: none; background-color: black" /> </ItemTemplate> </asp:Repeater> </div> <div style="float: left; margin-left: 30px"> <h3>Combo box selected row information</h3> <asp:TextBox ID="txtInfo" runat="server" TextMode="MultiLine" Height="160px" Width="350px"></asp:TextBox> </div> 我们的代码在后面,请注意我们如何确保仅在第一页加载时绑定数据(IsPostBack = false)。 因此这段代码: protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) LoadData(); } void LoadData() { string strSQL = @"SELECT ID, HotelName FROM tblHotels ORDER BY HotelName"; rstHotels = General.MyRst(strSQL); strSQL = "SELECT * FROM People ORDER BY FirstName"; Repeater1.DataSource = General.MyRst(strSQL); Repeater1.DataBind(); } protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e) { if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) { DropDownList cboHotel = (DropDownList)e.Item.FindControl("cboHotel"); cboHotel.DataSource = rstHotels; cboHotel.DataBind(); cboHotel.Items.Insert(0, new ListItem("Please select", "0")); DataRowView rowData = (DataRowView)e.Item.DataItem; // current binding row data if (rowData["Hotel_id"] != DBNull.Value) cboHotel.SelectedValue = rowData["Hotel_id"].ToString(); } } protected void cboHotel_SelectedIndexChanged(object sender, EventArgs e) { DropDownList cboHotel = (DropDownList)sender; RepeaterItem rptRow = (RepeaterItem)cboHotel.NamingContainer; string sInfo = ""; sInfo += $"Row index selected = {rptRow.ItemIndex}\n"; Label lblPerson = (Label)rptRow.FindControl("lblPerson"); sInfo += $"Row person information = {lblPerson.Text}\n"; sInfo += $"combo Hotel id = {cboHotel.SelectedItem.Value}\n"; sInfo += $"combo Hotel Name (text) = {cboHotel.SelectedItem.Text}\n"; txtInfo.Text = sInfo; } 现在的结果是这样的: 因此,通常可以在标记中放置一些数据源,但是一旦您有了回发和附加代码逻辑,那么我建议您通过使用后面的代码来“控制”数据绑定,而不是离开重新绑定可能会或可能不会再次发生。

回答 1 投票 0

wxObjectEventFuntion 与 wxCommandEvent

为什么wxsmith将wxObjectEventFunction绑定到连接分配中,并将wxCommandEvent绑定到实现函数中? IE。进入 OnButtonClick 并且编译器发出警告: C:..\Main.cp...

回答 1 投票 0

在 svelte 中对多个子组件列表实现事件处理的最佳方法是什么?

假设我有一个待办事项清单。每个列表项都有一个删除按钮,如果单击该按钮将从列表数组中删除该项目。现在我们就可以使用这些方法了。 1. //store.ts 导出类型项目 = { 文字:

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.