【发布时间】:2019-08-14 19:29:34
【问题描述】:
我正在开发一个 asp.net、c# 网络应用程序。我有一个文本框(带有验证器)定义为...
<asp:TextBox ID="VehicleAmt" runat="server" AutoPostBack="True"
OnTextChanged="VehicleAmt_OnTextChanged"
causesvalidation="true"
Width="35px"></asp:TextBox>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" Font-Size="12px"
ControlToValidate="VehicleAmt" ErrorMessage="*" ForeColor="#CC3300"
SetFocusOnError="True" ValidationExpression="[0-99999]*" Display="Dynamic">
</asp:RegularExpressionValidator>
<asp:RequiredFieldValidator id="RequiredFieldValidatorVehicleAmt"
ControlToValidate="VehicleAmt"
Display="Dynamic"
ErrorMessage="Required"
runat="server"/>
在表单的其他地方,我有一个 Telerik RadGrid,最后一列是一个按钮。这被定义为...
<telerik:GridTemplateColumn UniqueName="ActionColumn">
<ItemTemplate>
<asp:LinkButton Text="" runat="server" ID="lnkAddVehicle" CausesValidation="false" CommandName="AddVehicle">
<img src="images/buttons/add.png"/>
</asp:LinkButton>
</ItemTemplate>
VehicleAmt_OnTextChanged 方法可以节省一些数据库。问题是当我在文本框中输入内容然后单击添加按钮时,我实际上必须单击按钮两次才能运行按钮代码。任何想法为什么会发生这种情况以及如何为此启用单击?
我确实注意到我有一个标准的 asp.net 按钮,单击一下似乎就可以了。
仅供参考:AddVehicle 的代码部分是这样的......
protected void RadGridAvailableItems_ItemCommand(object source, Telerik.Web.UI.GridCommandEventArgs e)
{
if (e.CommandName != "Sort" && e.CommandName != "Page" && e.CommandName != "ChangePageSize")
{
GridDataItem dataItem = e.Item as GridDataItem;
int VehicleId = Convert.ToInt32(dataItem["VehicleId"].Text);
switch (e.CommandName)
{
case "AddVehicle":
:
break;
}
}
rebindGrids();
panErrorMessages.Visible = false;
}
【问题讨论】:
-
可能是“AddVehicle”的邮政编码。对 from 的验证将分为两部分……一部分是客户端,另一部分是服务器端,因此请注意保持它们的完整性。不清楚 AddVehicle 是否使用表单数据。
-
@pcalkins 我为按钮添加了一些代码,以便您查看。但是,它甚至没有进入方法,直到我点击两次。
-
好的,你可能有一个格式错误的 linkButton 标签。我不认为它是为那样使用而设计的……(不应该有结束标签)。如果图像将成为按钮,您可能只需要一个标准链接。
-
@pcalkins 我认为这不是问题所在。我已经这样用过很多次了。但谢谢你的想法! :)
标签: c# asp.net telerik telerik-grid radgrid