none
关于一个后台取值的问题,请教大家! RRS feed

  • 问题

  • 前台:
                    <asp:TextBox ID="txtCompentFee" Width="80px" runat="server" />
    后台:
    pageload里面,取得数据集后绑定数据
       txtCompentFee.Text = ds.Tables["RepairTable"].Rows[0]["CompentFee"].ToString().Trim();

    我修改了txtCompentFee里面的值,点确定按钮
            string strCompentFee = txtCompentFee.Text();//我这样取值为什么取不到?
            string strCompentFee = Request.Form[txtCompentFee.UniqueID];//一定要这样取值才能取到!我不明白其中的道理,请斑竹们能解释解释吗?谢谢!


    2010年2月3日 2:15

答案

  • 两个取的方式不一样。

    1 是直接取 Text 属性。因在回发后 PageLoad 中将 Text 赋了空字符串,所以你再去获取它时只能获取空字符。
    2 Request.Form 是获取 post 表单提交的变量,所以你可以获取到。

    知识改变命运,奋斗成就人生!
    • 已建议为答案 mldark 2010年2月3日 3:34
    • 已标记为答案 KeFang Chen 2010年2月4日 2:58
    2010年2月3日 2:37
    版主

全部回复

  • 你好!

    这是因为你下面的语句没有放到 if (!IsPostBack) 判断中。当你的  ds.Tables["RepairTable"].Rows[0]["CompentFee"].ToString().Trim(); 为空时就是产生这个问题。

     txtCompentFee.Text = ds.Tables["RepairTable"].Rows[0]["CompentFee"].ToString().Trim();

    知识改变命运,奋斗成就人生!
    2010年2月3日 2:29
    版主
  •   string strCompentFee = Request.Form[txtCompentFee.UniqueID];那位什么这样能取到?这是我最困惑的!
    2010年2月3日 2:33
  • 两个取的方式不一样。

    1 是直接取 Text 属性。因在回发后 PageLoad 中将 Text 赋了空字符串,所以你再去获取它时只能获取空字符。
    2 Request.Form 是获取 post 表单提交的变量,所以你可以获取到。

    知识改变命运,奋斗成就人生!
    • 已建议为答案 mldark 2010年2月3日 3:34
    • 已标记为答案 KeFang Chen 2010年2月4日 2:58
    2010年2月3日 2:37
    版主
  • 第二句话是关键,理解!谢谢!

    2010年2月3日 2:57