public string getValue(CheckBoxList li)
{
string text = "";
for (int i = 0; i < li.Items.Count; i++)
{
if (li.Items[i].Selected)
{
text = text + li.Items[i].Text;
}
} return text;
}
上边的方法是用来获取CheckBoxList中被选中的复选框的值,当复选框第一次被选中时,
text变量返回的是空值,请各位帮忙看下,问题出在哪里?
{
string text = "";
for (int i = 0; i < li.Items.Count; i++)
{
if (li.Items[i].Selected)
{
text = text + li.Items[i].Text;
}
} return text;
}
上边的方法是用来获取CheckBoxList中被选中的复选框的值,当复选框第一次被选中时,
text变量返回的是空值,请各位帮忙看下,问题出在哪里?
解决方案 »
- 求助 关于GridView的问题 绑定时如何IF多个选项
- 对JSON不懂,直接求解解方案。
- 如何从SQL SERVER2005中取出数据库文件
- ***< 超难问题,希望 zjcxc(邹建)高手给答复 >*** 如何用视图显示给定的ID的类别 以及它的所有子类的名字和id ,并且把查询给定的ID的类
- 这个SQL 语句有问题吗?
- GridView分页如何保存模板中控件值?
- 继承自己的类时,如何建立引用?
- 数据层、逻辑层对数据库连接字符串调用如何统一使用表现层网站项目中的唯一Web.config中的定义
- 关于asp.net配置环境 安全性
- TreeView权限分配问题
- 从数据库中提取图片显示为什么是x
- 求正则表达式取[Content]字符串地[/Content]中间的值
复选框就不会显示。
protected void list1_SelectedIndexChanged(object sender, EventArgs e)
{
}
里面调用,结果text的值还是为空,不知道它应该在哪里调用才合适?
调用是在脚本里,
<script language="javascript" type="text/javascript">
// <!CDATA[function Submit1_onclick() {
var text = "<%=getValue(list1)%>";
if(text=="")
{
alert('呵呵~您还未做任何选择!');
}
else
{
alert('恭喜,投票成功!');
window.open("welcome.aspx");}
}// ]]>
</script>
你肯定是在按钮里获取他的值,这样每次都会先触发Page_Load事件,重新加载一次,
然后执行按钮事件,而在加载后是没有选中的,所以一直为空
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CheckBoxList ID="CheckBoxList1" runat="server">
</asp:CheckBoxList>
<asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
</div>
</form>
</body>
</html>using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Magic_YJL;public partial class Travel_Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
this.CheckBoxList1.DataSource = GetTravelTypeInfo("-1");
this.CheckBoxList1.DataTextField = "name";
this.CheckBoxList1.DataValueField = "name";
this.CheckBoxList1.DataBind();
}
} #region 获取旅游主题信息
protected DataTable GetTravelTypeInfo(string strParentId)
{
DataTable dt = null;
Connection conn = Connection.Current;
string strSql = "SELECT [name] FROM travelTypes WHERE parentId = {0};";
try
{
dt = conn.GetDataTable(string.Format(strSql, strParentId));
}
catch
{
return dt;
}
finally
{
conn.Close();
}
return dt;
}
#endregion
protected void Button1_Click(object sender, EventArgs e)
{
//你那个方法是正确的,可是系统已经定义了一些属性来获取选中的值
Response.Write("<script language='javascript'>window.alert('" + this.CheckBoxList1.SelectedItem.Text + "');</script>");
}
}
我这个例子不能执行,原因是你没有"Magic_YJL"程序集,这里只是告诉你怎么实现而已
但是flag必须为public
public string flag=string.empty;
if (!Page.IsPostBack)
里试试,应该可以
public void toupiao(CheckBoxList li) {
string str = "";
str = str + li.SelectedItem.Text;
if (str == "")
{
Response.Write("<script>alert('啊?');</script>");
}
else {
Response.Write("<script>alert('呵呵~');</script>");
}
}
然后在按钮的click事件里面调用,用来判断用户是否选择了Checkboxlist中复选框的。
当用户选中时可以弹出“呵呵”,但如果不选的话,就会报“未将对象引用设置到对象的实例”错误。
原因是没有选中,SelectedItem属性本身就为null,你怎么调用它的属性Text呢?