C# WEB开发的几个问题的解决
2009-07-28 09:43
357 查看
不论用什么语言来做WEB系统,遇到问题是难免的事。刚开始比较生,所有问题有好像很难解决。后来熟了,只要看一眼抛出的异常,就知道发生了什么问题。但有些问题,因在以前没做过,所以要费尽心思才能解决。下面的四个问题,有的是自己灵光一现想到的,也有的是借鉴别人的做法做到的。记在这里,以备不忘。
1 关于绕过验证的按钮的问题。
如果页面上有多个按钮,也有多个验证控件。但我们只是想提交其中的一部分完成某个操作后,再提交剩下的。那么第一个提交按钮就必须绕过验证,否则提交不了。此时就把第一人按钮的 CausesValidation 属性设置为"False" 即可。
2 关于多个 TextBox 一起输入的问题。
有时候客户需要我们一次输入多个多个输入,免去多次输入的繁琐。这时我们可以使用GridView。它不仅仅是显示数据的工具,也可以在显示数据的地方添加多个输入控件。同时还可以对这些控件进行验证。具体代码如下:
当然这还不是关键问题。关键的问题是如何在后台取到这些值。我们可以先看一下此页面的源文件,发现动态的TextBox的生成虽然不太直白,但还是有规律可依,根据这些规律,我们就可以取到它们的值。
3.关于下拉框的验证问题。
我一直都不太喜欢写JavaScript,因为写起来很麻烦。但是毫无疑问,把验证放在页面上的好处是所有人都喜欢的。下拉框的后台验证是很简单的,但我接触了C#的验证控件后,想了想还是可以放在前台的。代码如下:
4 利用按钮来激发TextBox的点击事件。
有时候我们需要对用户已经填写的部分数据进行处理之后,显示一个处理结果在页面上,给用户一个明确的交待,然后再提交所有的数据。如果处理的结果要填写在 TextBox 里,但我们发现C#的TextBox并没有onclick事件。这个时候我们可以这样进行处理:
注意button的宽度我们设置为0。
然后我们在后台写下代码:
1 关于绕过验证的按钮的问题。
如果页面上有多个按钮,也有多个验证控件。但我们只是想提交其中的一部分完成某个操作后,再提交剩下的。那么第一个提交按钮就必须绕过验证,否则提交不了。此时就把第一人按钮的 CausesValidation 属性设置为"False" 即可。
2 关于多个 TextBox 一起输入的问题。
有时候客户需要我们一次输入多个多个输入,免去多次输入的繁琐。这时我们可以使用GridView。它不仅仅是显示数据的工具,也可以在显示数据的地方添加多个输入控件。同时还可以对这些控件进行验证。具体代码如下:
<asp:GridView ID="GridLoad" runat="server" Width="80%" EmptyDataText="没有数据!" AutoGenerateColumns="False" AllowPaging="False" AllowSorting="False" SkinID="GridViewSkin" DataKeyNames="ID,ComName" DataMember="ID,ComName" OnRowDataBound="GridLoad_RowDataBound"> <Columns> <asp:BoundField DataField="ID" HeaderText="单位" /> <asp:TemplateField HeaderText="今年最大负荷(MW)"> <ItemTemplate> <asp:TextBox ID="LoaMaxLoad" runat="server" Width="100px" Text=''></asp:TextBox> <asp:RequiredFieldValidator ID="V_LoaMaxLoad_0" runat="server" ControlToValidate="LoaMaxLoad" ErrorMessage="请输入数值!"></asp:RequiredFieldValidator> <asp:RangeValidator ID="V_LoaMaxLoad" ControlToValidate="LoaMaxLoad" Type="Double" runat="server" ErrorMessage="请输入数字!"></asp:RangeValidator> </ItemTemplate> </asp:TemplateField> <asp:TemplateField HeaderText="本月县域供电量(万kWh)"> <ItemTemplate> <asp:TextBox ID="LoaLoad" runat="server" Width="100px" Text=''></asp:TextBox> <asp:RequiredFieldValidator ID="V_LoaLoad_0" runat="server" ControlToValidate="LoaLoad" ErrorMessage="请输入数值!"></asp:RequiredFieldValidator> <asp:RangeValidator ID="V_LoaLoad" ControlToValidate="LoaLoad" Type="Double" runat="server" ErrorMessage="请输入数字!"></asp:RangeValidator> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
当然这还不是关键问题。关键的问题是如何在后台取到这些值。我们可以先看一下此页面的源文件,发现动态的TextBox的生成虽然不太直白,但还是有规律可依,根据这些规律,我们就可以取到它们的值。
for (int i = 0; i < this.GridLoad.Rows.Count; i++) { //取每行数据的ID model.LoaComID = Convert.ToInt32(this.GridLoad.DataKeys[i].Values[0]); //根据控件的名字取值 string LoaMaxLoad_Name = "GridLoad$ctl" + (i + 2).ToString().PadLeft(2, '0') + "$LoaMaxLoad"; string LoaLoad_Name = "GridLoad$ctl" + (i + 2).ToString().PadLeft(2, '0') + "$LoaLoad"; double LoaMaxLoad = Convert.ToDouble(Request.Form[LoaMaxLoad_Name]); double LoaLoad = Convert.ToDouble(Request.Form[LoaLoad_Name]); }
3.关于下拉框的验证问题。
我一直都不太喜欢写JavaScript,因为写起来很麻烦。但是毫无疑问,把验证放在页面上的好处是所有人都喜欢的。下拉框的后台验证是很简单的,但我接触了C#的验证控件后,想了想还是可以放在前台的。代码如下:
<asp:CompareValidator ID="V_TraID" runat="server" ControlToValidate="TraID" ErrorMessage="请选择主变!" Operator="GreaterThan" Type="Integer" ValueToCompare="0"></asp:CompareValidator>
4 利用按钮来激发TextBox的点击事件。
有时候我们需要对用户已经填写的部分数据进行处理之后,显示一个处理结果在页面上,给用户一个明确的交待,然后再提交所有的数据。如果处理的结果要填写在 TextBox 里,但我们发现C#的TextBox并没有onclick事件。这个时候我们可以这样进行处理:
<asp:TextBox ID="LoaMaxGrowthRate" runat="server" onclick="document.getElementById('Button1').click();" Width="200px" AutoPostBack="True"></asp:TextBox> <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button" CausesValidation="False" Width="0px" />
注意button的宽度我们设置为0。
然后我们在后台写下代码:
protected void Button1_Click(object sender, EventArgs e) { //do something this.LoaMaxGrowthRate.Text = LoaMaxGrowthRate + "%"; }
相关文章推荐
- 关于C#开发WEB项目TextBox控件的自适应高问题解决办法!
- .Net Web开发中几个诡异问题的解决办法
- 关于C#开发WEB项目TextBox控件的自适应高问题解决办法!
- Web应用开发过程中常见的几个中文问题及其解决方法
- 关于html+ashx开发中几个问题的解决方法 (转)
- 解决JSP开发Web程序中的中文问题
- C#编写WINNT服务,随便解决安卓开发遇到的5037被众多程序无节操占用的问题
- Notes 开发中的几个小问题及其解决方法
- WEB前端开发人员须知的常见浏览器兼容问题及解决技巧
- web开发时,使用django-cors-middleware解决django的跨域问题
- 学习Java Web开发中遇到的问题,及其解决方法
- Python中使用django框架进行web开发,模板中无法导入css、js和图片的问题解决
- 关于html+ashx开发中几个问题的解决方法
- android开发中webview保存cookie问题的解决
- 用C#在MVC模式下进行Web项目开发,cshtml下三级联动下拉框获取初始值及传值显示的问题
- Web开发_问题解决(3)之linux服务器上获取路径问题||jsp页面报错问题
- Web开发基础--WebService调试过程中遇到的几个问题
- 制作Web安装文件时遇到的几个小问题及其解决思路
- 解决JSP开发Web程序中的中文问题
- jsp开发遇到的几个问题与解决办法