GridView中两列数字进行判断 GridView中有一列从数据库带出来的数据,然后有一列摸板列,TextBox,要求在TextBox中输入数字后,把输入的数字和该行从数据库中取出来的数据进行比较大小,比数据库中的数据大则不允许,各位前辈,望指教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在你的模板列中加入一个lable用来显示错误信息mytbx为模板里的TextBox,AutoPostback设会true protected void mytbx_TextChanged(object sender, EventArgs e) { TextBox tbx=(TextBox)GridView1.Rows[0].FindControl("mytbx"); Label lbl=(Label)GridView1.Rows[0].FindControl("meslbl"); //a为你在数据库中读出的数据 if (Convert.ToInt32(tbx.Text) > a) lbl.Text = "错误"; } protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Separator) { TextBox txtSum = e.Row.Cells[0].FindControl("txtSum") as TextBox; TextBox txtHiddenSum = e.Row.Cells[0].FindControl("txtHiddenSum ") as TextBox; if(txtSum!=null&&txtHiddenSum !=null) { if(Convert.ToInt32(txtSum.Text)>Convert.ToInt32(txtHiddenSum.Text)) { txtSum.Attributes.Add("onblur","if(this.value!="")window.alert('注意:输入的数字不要大于"+txtHiddenSum .Text+");"); //Page.ClientScript.RegisterStartupScript(this.GetType(),"msg","<script language='javascript'>window.alert('注意:输入的数字不要大于"+txtHiddenSum .Text+")</script>"); } } } }<asp:GridView ID="GridView2" runat="server"> <Columns> <asp:TemplateField><ItemTemplate><asp:TextBox ID="txtSum" runat="server"></asp:TextBox>> <asp:TextBox ID="txtHiddenSum" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container,"DataItem.txtSum") %>'></asp:TextBox></ItemTemplate> </asp:TemplateField></Columns> </asp:GridView> 谢谢上面两位的回答telankes2000,试下这个方法 牛人们进。。。帮帮忙 asp.net 新手问几个问题! 急,两个关于字符串的问题,马上结帐 3个textbox 当其中两个输入int时,另一个输出他们的和.改变其中任何一个,和也改变 JQuery FlexiGrid的asp.net完美解决方案:dotNetFlexGrid 小弟问个很easy的问题! 【【分析器错误是什么错误啊 哭~~】】 在vs2010中代码没有错 为什么页面一直无法显示 水晶报表的问题,急。高分求解 关于 byte 数组类型之间的连接用什么符号?(谢谢) 很难的问题,请帮我看下,谢谢 为什么我用DataList只显示一行数据,数据库中有多行啊
mytbx为模板里的TextBox,AutoPostback设会true
protected void mytbx_TextChanged(object sender, EventArgs e)
{
TextBox tbx=(TextBox)GridView1.Rows[0].FindControl("mytbx");
Label lbl=(Label)GridView1.Rows[0].FindControl("meslbl");
//a为你在数据库中读出的数据
if (Convert.ToInt32(tbx.Text) > a)
lbl.Text = "错误";
}
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow || e.Row.RowType == DataControlRowType.Separator)
{
TextBox txtSum = e.Row.Cells[0].FindControl("txtSum") as TextBox;
TextBox txtHiddenSum = e.Row.Cells[0].FindControl("txtHiddenSum ") as TextBox;
if(txtSum!=null&&txtHiddenSum !=null)
{
if(Convert.ToInt32(txtSum.Text)>Convert.ToInt32(txtHiddenSum.Text))
{
txtSum.Attributes.Add("onblur","if(this.value!="")window.alert('注意:输入的数字不要大于"+txtHiddenSum .Text+");");
//Page.ClientScript.RegisterStartupScript(this.GetType(),"msg","<script language='javascript'>window.alert('注意:输入的数字不要大于"+txtHiddenSum .Text+")</script>");
}
}
}
}
<asp:GridView ID="GridView2" runat="server">
<Columns>
<asp:TemplateField><ItemTemplate><asp:TextBox ID="txtSum" runat="server"></asp:TextBox>>
<asp:TextBox ID="txtHiddenSum" runat="server" Visible="false" Text='<%# DataBinder.Eval(Container,"DataItem.txtSum") %>'></asp:TextBox></ItemTemplate>
</asp:TemplateField></Columns>
</asp:GridView>
telankes2000,试下这个方法