aspx.cs 向aspx页面控件赋值后 控件还是没有值

时间:2023-01-22 20:39:25
我有一个继承母版页的内容页,在页面点击,aspx.cs从数据库中查找数据,并将结果赋值给前台控件,但是前台控件不显示赋的值,请大家帮帮忙,这是为什么?

22 个解决方案

#1


自己跟踪下,还有你这个描述实在没法知道到底是什么问题

#2


有一个人,40岁,一天早上出门,就死了,问怎么死的?
楼主的问题跟这个一样
啥信息都没给,就让人猜

#3


后台函数public override void TableRowDoubleClick(string TableID, string RowStr)
        {string[] RowStr_arr = RowStr.Split('|');
            string load_yard_code = RowStr_arr[10];
            string unload_yard_code = RowStr_arr[11];
            string sqlStr = "select yard_no,YARD_NAME from bda_storage_yard where  YARD_NO ='" + RowStr_arr[10] + "' or YARD_NO ='" + RowStr_arr[11] + "'";
            System.Data.DataTable dt = null;
            publicclass.GeneralCommon gl = new publicclass.GeneralCommon();
            if (gl.server_type == "oracle")
                dt = gl.exe_sql_table(sqlStr);
            else if (gl.server_type == "sqlserver")
                dt = gl.exe_sql_table_sql(sqlStr);
       this.txtPathStart.Value = dt.Rows[0][1].ToString()
            this.txtPathEnd.Value = dt.Rows[1][1].ToString();
}

给前台控件赋值
<input  name="end_1" type="text"
                        id="txtPathEnd" runat="server" value=""  clientidmode="Static" style="width: 100px; height:25px;" /> 
页面上还是不显示赋的值。

#4


你调试过吗?把你调试信息贴出来。

#5


this.txtPathStart.Value = dt.Rows[0][1].ToString();是有值的

#6


txtPathStart是个什么玩意,怎么还给.value赋值
如果是label或textbox,不都应该是.Text吗

#7


显示出来的是Text 属性, 不是Value..

#8


this.txtPathStart.Text= dt.Rows[0][1].ToString();

#9


 input type="text" 没有text属性啊

#10


input是个前台控件,不是asp控件,不能在后台取值赋值

#11


runat="server" 这样也不可以吗

#12


不知道,你第二次触发的时候 this.txtPathEnd.Value 是上次所赋的值吗?或者你在C#中定义一个static变量,然后利用AJAX函数从前台读取,或者能解决你的问题。

#13


<input  name="end_1" type="text"  id="txtPathEnd" runat="server" value=""  clientidmode="Static" style="width: 100px; height:25px;" /> 
可以作为服务器控件使用。

this.txtPathStart.Value = dt.Rows[0][1].ToString()
            this.txtPathEnd.Value = dt.Rows[1][1].ToString();
也没有问题。
上一句后面加上“;”

再检查一下是不是取出了dt的值,

你可以这样看看有没有取上值,若有,则检查dt:

this.txtPathStart.Value = “测试start”;
this.txtPathEnd.Value = "测试end";

#14


我测试了一下,没问题。检查DT吧。
aspx.cs 向aspx页面控件赋值后 控件还是没有值

#15


Page_Load应该是没有问题的,可是如果Load之后,在页面上用其他操作,利用AJAX技术触发函数再赋值好像有问题呢。

#17


这个问题看不懂了,代码貌似没什么问题,关键是你调试过程中,应该发现问题。

#18


引用 11 楼 yishuangshou1 的回复:
runat="server" 这样也不可以吗

不要乱加runat="server"
并不是任何东西加了runat="server"就变成服务器控件了
比如一个<a>标签,你给它加runat="server"是代表什么意思?
runat="server"不过是微软的语法糖

#19


直接使用<%#  Eval(XXX) %>

这个 xxx变量只要你在 Page_Load的时候赋值就可以了..

#20


关键是很多东西不是初始化赋值就能解决问题的,很多时候是在运行过程中需要变化啊!

#21


引用 11 楼 yishuangshou1 的回复:
runat="server" 这样也不可以吗


TableRowDoubleClick 在哪里执行的?之后执行了什么?特别是,你初始化数据部分有没有(本不应该)重复执行?

#22


Page_Load 里面肯定有代码,并且没有加上IsPostBack

#1


自己跟踪下,还有你这个描述实在没法知道到底是什么问题

#2


有一个人,40岁,一天早上出门,就死了,问怎么死的?
楼主的问题跟这个一样
啥信息都没给,就让人猜

#3


后台函数public override void TableRowDoubleClick(string TableID, string RowStr)
        {string[] RowStr_arr = RowStr.Split('|');
            string load_yard_code = RowStr_arr[10];
            string unload_yard_code = RowStr_arr[11];
            string sqlStr = "select yard_no,YARD_NAME from bda_storage_yard where  YARD_NO ='" + RowStr_arr[10] + "' or YARD_NO ='" + RowStr_arr[11] + "'";
            System.Data.DataTable dt = null;
            publicclass.GeneralCommon gl = new publicclass.GeneralCommon();
            if (gl.server_type == "oracle")
                dt = gl.exe_sql_table(sqlStr);
            else if (gl.server_type == "sqlserver")
                dt = gl.exe_sql_table_sql(sqlStr);
       this.txtPathStart.Value = dt.Rows[0][1].ToString()
            this.txtPathEnd.Value = dt.Rows[1][1].ToString();
}

给前台控件赋值
<input  name="end_1" type="text"
                        id="txtPathEnd" runat="server" value=""  clientidmode="Static" style="width: 100px; height:25px;" /> 
页面上还是不显示赋的值。

#4


你调试过吗?把你调试信息贴出来。

#5


this.txtPathStart.Value = dt.Rows[0][1].ToString();是有值的

#6


txtPathStart是个什么玩意,怎么还给.value赋值
如果是label或textbox,不都应该是.Text吗

#7


显示出来的是Text 属性, 不是Value..

#8


this.txtPathStart.Text= dt.Rows[0][1].ToString();

#9


 input type="text" 没有text属性啊

#10


input是个前台控件,不是asp控件,不能在后台取值赋值

#11


runat="server" 这样也不可以吗

#12


不知道,你第二次触发的时候 this.txtPathEnd.Value 是上次所赋的值吗?或者你在C#中定义一个static变量,然后利用AJAX函数从前台读取,或者能解决你的问题。

#13


<input  name="end_1" type="text"  id="txtPathEnd" runat="server" value=""  clientidmode="Static" style="width: 100px; height:25px;" /> 
可以作为服务器控件使用。

this.txtPathStart.Value = dt.Rows[0][1].ToString()
            this.txtPathEnd.Value = dt.Rows[1][1].ToString();
也没有问题。
上一句后面加上“;”

再检查一下是不是取出了dt的值,

你可以这样看看有没有取上值,若有,则检查dt:

this.txtPathStart.Value = “测试start”;
this.txtPathEnd.Value = "测试end";

#14


我测试了一下,没问题。检查DT吧。
aspx.cs 向aspx页面控件赋值后 控件还是没有值

#15


Page_Load应该是没有问题的,可是如果Load之后,在页面上用其他操作,利用AJAX技术触发函数再赋值好像有问题呢。

#16


#17


这个问题看不懂了,代码貌似没什么问题,关键是你调试过程中,应该发现问题。

#18


引用 11 楼 yishuangshou1 的回复:
runat="server" 这样也不可以吗

不要乱加runat="server"
并不是任何东西加了runat="server"就变成服务器控件了
比如一个<a>标签,你给它加runat="server"是代表什么意思?
runat="server"不过是微软的语法糖

#19


直接使用<%#  Eval(XXX) %>

这个 xxx变量只要你在 Page_Load的时候赋值就可以了..

#20


关键是很多东西不是初始化赋值就能解决问题的,很多时候是在运行过程中需要变化啊!

#21


引用 11 楼 yishuangshou1 的回复:
runat="server" 这样也不可以吗


TableRowDoubleClick 在哪里执行的?之后执行了什么?特别是,你初始化数据部分有没有(本不应该)重复执行?

#22


Page_Load 里面肯定有代码,并且没有加上IsPostBack