gpt4 book ai didi

javascript - 在文本框上绑定(bind) gridview onkeypress

转载 作者:太空宇宙 更新时间:2023-11-03 14:47:10 25 4
gpt4 key购买 nike

所以我已经有一个 gridview 正在根据在带有 OnTextChanged 事件的文本框中键入的数字进行更新。问题是 gridview 仅在文本框失去控制时更新,我希望它在根据输入的数字按下键时绑定(bind)数据。我已经尝试过对 web 方法进行 ajax 调用或从 javascript 调用代码隐藏函数,但都没有成功

这是我的输入框

<asp:UpdatePanel runat="server" ID="upNumComps" UpdateMode="Conditional">
<ContentTemplate>
<table>
<tr>
<td>
<asp:Label ID="lblNumComps" runat="server" Text="Nº de Componentes " ForeColor="#142658" Style="font-weight: bold;"></asp:Label><span style="color: red; margin-right: 5px;"> * </span>
</td>
<td>
<asp:TextBox ID="txtNumComps" runat="server" AutoPostBack="True" OnTextChanged="txtNumComps_TextChanged"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvNumComps" runat="server" ForeColor="red" ControlToValidate="txtNumComps" ErrorMessage=""></asp:RequiredFieldValidator>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>

GridView 在这里

<asp:UpdatePanel ID="upDetComps" CssClass="mGrid1" runat="server">
<ContentTemplate>
<asp:GridView ID="grvComponentes" runat="server" AutoGenerateColumns="False" ForeColor="#001f3f" GridLines="None" Style="text-align: center;">
<Columns>
<asp:TemplateField HeaderText="Nº" ItemStyle-HorizontalAlign="Center">

<ItemTemplate>
<asp:Label ID="lblRowNumber" Text='<%# Container.DataItemIndex + 1 %>' runat="server" Style="margin-left: 10px; margin-right: 10px;" />
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Componente">
<ItemTemplate>
<asp:TextBox ID="txtComponente" runat="server" Style="margin-left: 10px; margin-right: 10px; margin-top: 5px;"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvComponente" ForeColor="red" runat="server" ControlToValidate="txtComponente" ErrorMessage="*"></asp:RequiredFieldValidator>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Base">
<ItemTemplate>
<asp:TextBox ID="txtBase" runat="server" Style="margin-left: 10px; margin-right: 10px; margin-top: 5px;"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvBase" ForeColor="red" runat="server" ControlToValidate="txtBase" ErrorMessage="*"></asp:RequiredFieldValidator>
</ItemTemplate>
</asp:TemplateField>

<asp:TemplateField HeaderText="Comprimento">
<ItemTemplate>

<asp:UpdatePanel runat="server">
<ContentTemplate>

<asp:TextBox ID="txtComprimento" runat="server" AutoPostBack="true" OnTextChanged="txtComprimento_TextChanged" Style="margin-left: 10px; margin-right: 10px; margin-top: 5px;"></asp:TextBox>
<asp:RequiredFieldValidator ID="rfvComprimento" ForeColor="red" runat="server" ControlToValidate="txtComprimento" ErrorMessage="*"></asp:RequiredFieldValidator>

</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="txtComprimento" EventName="TextChanged" />
</Triggers>
</asp:UpdatePanel>

</ItemTemplate>
</asp:TemplateField>

</Columns>
</asp:GridView>
</ContentTemplate>
</asp:UpdatePanel>

代码隐藏函数

protected void txtNumComps_TextChanged(object sender, EventArgs e)
{
string rowCount = "";
if (!CheckInt(txtNumComps.Text) || txtNumComps.Text == "0")
{
txtNumComps.Text = "";
txtNumComps.Attributes.Add("placeholder", "Insira um número");
rowCount = "0";
ViewState["rowCount"] = rowCount;
grvComponentesBind();
}
else if (CheckInt(txtNumComps.Text) && txtNumComps.Text != "0")
{
rowCount = txtNumComps.Text;
ViewState["rowCount"] = rowCount;
grvComponentesBind();
}
}

编辑

这是我目前管理的更新。

我已经添加了这个javascript函数

 <script type="text/javascript">
function RefreshUpdatePanel(id) {
debugger
__doPostBack(id, '');
document.getElementById(id).blur(id);
document.getElementById(id).focus(id);
};
</script>

在文本框上我已经改成了这个

<asp:TextBox ID="txtNumComps" runat="server" onkeyup="RefreshUpdatePanel(this.id);" OnTextChanged="txtNumComps_TextChanged"></asp:TextBox>

但是它做了我想要的,它显示了基于现在键入的数字的行数,而不是通过单击文本框来更新但仍然存在问题,文本框在按下一个键后失去焦点即使我尝试以编程方式设置焦点,它也不起作用,或者它会将光标设置在之前输入的数字后面

最佳答案

我不确定你为什么要这样处理它,但我想你可以这样做:

txtNumComps.Attributes.Add("onKeyUp", "document.Form1.submit();");

在我看来会激怒大多数用户...

关于javascript - 在文本框上绑定(bind) gridview onkeypress,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53637024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com