只想做一个简单的功能。麻烦大家帮我看一下吧
<%
Book b=new Book ();
for (int count = 1; count < b.GetCount() + 1; count++)
{
%>
<asp:HyperLink ID="Myhl" runat="server" NavigateUrl="~/Default.aspx?currentPage=<% Response.Write(count); %>"><% Response.Write(count); %> 页</asp:HyperLink>
<%
}
%>
一个超连,后面跟着一个currentPage参数,参数值是count变量,就是这么简单的问题,但老报找不到count变量(先前是学jsp的)本人估计是生命周期的问题。。请大家帮我解决这个问题。。
12 个解决方案
#1
看来你还是没转过来
你最容易理解的办法
前头写上这段服务器端脚本
然后你那段for (int count = 1; count < b.GetCount() + 1; count++)
把"int"去掉
你最容易理解的办法
前头写上这段服务器端脚本
<script runat="server" language="C#">
int count = 0;
</script>
然后你那段for (int count = 1; count < b.GetCount() + 1; count++)
把"int"去掉
#2
其实你完全不应该这么写.
ASP.NET 使用一种CodeBehind技术,
你的代码可以在CS文件中写.
前台就是标签.
ASP.NET 使用一种CodeBehind技术,
你的代码可以在CS文件中写.
前台就是标签.
#3
我想动态输出几十个标签呢?
在后台new出来吗?那样感觉好像很麻烦哦。。
在后台new出来吗?那样感觉好像很麻烦哦。。
#4
<script runat="server" language="C#">
int count = 0;
</script>
谢谢二楼。。用这种办法是可以解决一部分问题。。但当我按下超连的时候还地址栏的参数不对哦。
地址栏的参数本应该是
http://localhost:1501/dome2/Default.aspx?currentPage=2
这样的。。但当我点超连的时候地址栏却是这样的。。请问我哪里写错的。。http://localhost:1501/dome2/Default.aspx?currentPage=<%%20Response.Write(count);%20%>
题目代码没改就加上那个脚本而以
int count = 0;
</script>
谢谢二楼。。用这种办法是可以解决一部分问题。。但当我按下超连的时候还地址栏的参数不对哦。
地址栏的参数本应该是
http://localhost:1501/dome2/Default.aspx?currentPage=2
这样的。。但当我点超连的时候地址栏却是这样的。。请问我哪里写错的。。http://localhost:1501/dome2/Default.aspx?currentPage=<%%20Response.Write(count);%20%>
题目代码没改就加上那个脚本而以
#5
<%% %%>
老兄你见过这么写的么?!?!?!?!?!
老兄你见过这么写的么?!?!?!?!?!
#6
什么阿
说错了
<%Response.Write(count)%>">
你在<%前后加空格干嘛阿
#7
<%
Book b=new Book ();
for (int count = 1; count < b.GetCount() + 1; count++)
{
%>
写法很奇怪,估计你的count声明局限在这里了。你这种写法我从未写过。你还是保留在asp的写法风格上,这样就感觉失去了.net的代码分离有点了。建议不要这样写
Book b=new Book ();
for (int count = 1; count < b.GetCount() + 1; count++)
{
%>
写法很奇怪,估计你的count声明局限在这里了。你这种写法我从未写过。你还是保留在asp的写法风格上,这样就感觉失去了.net的代码分离有点了。建议不要这样写
#8
<script runat="server" language="C#">
int count = 0;
</script>
你把上面的int改成var試試,我也是初學的,也不太懂
int count = 0;
</script>
你把上面的int改成var試試,我也是初學的,也不太懂
#9
2楼说的没错,你在HTML中写代码还不好调试
#10
你所使用的是服务端控件,你说到是生命周期的问题,这是对的,控件的初试化在pageinit事件.而你变量的执行在pageload.所以在控件初始化的时候还没有变量.
你可以用绑定的方法使服务端控件获得变量值<%# 变量%>而不是<%= 变量%>.
另外你也可以用一般控件直接使用<%=变量 %>因为一般控件没有初始化问题,所以能直接获得变量!
你可以用绑定的方法使服务端控件获得变量值<%# 变量%>而不是<%= 变量%>.
另外你也可以用一般控件直接使用<%=变量 %>因为一般控件没有初始化问题,所以能直接获得变量!
#11
补充上面<%# 变量%>绑定之后还要调用page.databind()才能获得变量值
#12
我知道在asp页面里写cs代码不好。。但我也想先把这个代码给调试出来呀。。
<%
Book b=new Book ();
for (count = 1; count < b.GetCount() + 1; count++)
{
%>
<asp:HyperLink ID="Myhl" runat="server" NavigateUrl="~/Default.aspx?currentPage=<%Response.Write(count);%>"><% Response.Write(count); %> 页</asp:HyperLink>
<%
}
%>
我试了好几种方法。。页面后面跟的参数都是按原样输出。。根本就取不到count的值
<%
Book b=new Book ();
for (count = 1; count < b.GetCount() + 1; count++)
{
%>
<asp:HyperLink ID="Myhl" runat="server" NavigateUrl="~/Default.aspx?currentPage=<%Response.Write(count);%>"><% Response.Write(count); %> 页</asp:HyperLink>
<%
}
%>
我试了好几种方法。。页面后面跟的参数都是按原样输出。。根本就取不到count的值
#1
看来你还是没转过来
你最容易理解的办法
前头写上这段服务器端脚本
然后你那段for (int count = 1; count < b.GetCount() + 1; count++)
把"int"去掉
你最容易理解的办法
前头写上这段服务器端脚本
<script runat="server" language="C#">
int count = 0;
</script>
然后你那段for (int count = 1; count < b.GetCount() + 1; count++)
把"int"去掉
#2
其实你完全不应该这么写.
ASP.NET 使用一种CodeBehind技术,
你的代码可以在CS文件中写.
前台就是标签.
ASP.NET 使用一种CodeBehind技术,
你的代码可以在CS文件中写.
前台就是标签.
#3
我想动态输出几十个标签呢?
在后台new出来吗?那样感觉好像很麻烦哦。。
在后台new出来吗?那样感觉好像很麻烦哦。。
#4
<script runat="server" language="C#">
int count = 0;
</script>
谢谢二楼。。用这种办法是可以解决一部分问题。。但当我按下超连的时候还地址栏的参数不对哦。
地址栏的参数本应该是
http://localhost:1501/dome2/Default.aspx?currentPage=2
这样的。。但当我点超连的时候地址栏却是这样的。。请问我哪里写错的。。http://localhost:1501/dome2/Default.aspx?currentPage=<%%20Response.Write(count);%20%>
题目代码没改就加上那个脚本而以
int count = 0;
</script>
谢谢二楼。。用这种办法是可以解决一部分问题。。但当我按下超连的时候还地址栏的参数不对哦。
地址栏的参数本应该是
http://localhost:1501/dome2/Default.aspx?currentPage=2
这样的。。但当我点超连的时候地址栏却是这样的。。请问我哪里写错的。。http://localhost:1501/dome2/Default.aspx?currentPage=<%%20Response.Write(count);%20%>
题目代码没改就加上那个脚本而以
#5
<%% %%>
老兄你见过这么写的么?!?!?!?!?!
老兄你见过这么写的么?!?!?!?!?!
#6
什么阿
说错了
<%Response.Write(count)%>">
你在<%前后加空格干嘛阿
#7
<%
Book b=new Book ();
for (int count = 1; count < b.GetCount() + 1; count++)
{
%>
写法很奇怪,估计你的count声明局限在这里了。你这种写法我从未写过。你还是保留在asp的写法风格上,这样就感觉失去了.net的代码分离有点了。建议不要这样写
Book b=new Book ();
for (int count = 1; count < b.GetCount() + 1; count++)
{
%>
写法很奇怪,估计你的count声明局限在这里了。你这种写法我从未写过。你还是保留在asp的写法风格上,这样就感觉失去了.net的代码分离有点了。建议不要这样写
#8
<script runat="server" language="C#">
int count = 0;
</script>
你把上面的int改成var試試,我也是初學的,也不太懂
int count = 0;
</script>
你把上面的int改成var試試,我也是初學的,也不太懂
#9
2楼说的没错,你在HTML中写代码还不好调试
#10
你所使用的是服务端控件,你说到是生命周期的问题,这是对的,控件的初试化在pageinit事件.而你变量的执行在pageload.所以在控件初始化的时候还没有变量.
你可以用绑定的方法使服务端控件获得变量值<%# 变量%>而不是<%= 变量%>.
另外你也可以用一般控件直接使用<%=变量 %>因为一般控件没有初始化问题,所以能直接获得变量!
你可以用绑定的方法使服务端控件获得变量值<%# 变量%>而不是<%= 变量%>.
另外你也可以用一般控件直接使用<%=变量 %>因为一般控件没有初始化问题,所以能直接获得变量!
#11
补充上面<%# 变量%>绑定之后还要调用page.databind()才能获得变量值
#12
我知道在asp页面里写cs代码不好。。但我也想先把这个代码给调试出来呀。。
<%
Book b=new Book ();
for (count = 1; count < b.GetCount() + 1; count++)
{
%>
<asp:HyperLink ID="Myhl" runat="server" NavigateUrl="~/Default.aspx?currentPage=<%Response.Write(count);%>"><% Response.Write(count); %> 页</asp:HyperLink>
<%
}
%>
我试了好几种方法。。页面后面跟的参数都是按原样输出。。根本就取不到count的值
<%
Book b=new Book ();
for (count = 1; count < b.GetCount() + 1; count++)
{
%>
<asp:HyperLink ID="Myhl" runat="server" NavigateUrl="~/Default.aspx?currentPage=<%Response.Write(count);%>"><% Response.Write(count); %> 页</asp:HyperLink>
<%
}
%>
我试了好几种方法。。页面后面跟的参数都是按原样输出。。根本就取不到count的值