我使用DropDownList1.Items.FindByValue(“社会新闻“).Selected = true方法,出现“未将对象引用设置到对象的实例。”的错误。谁知道怎么弄啊?
11 个解决方案
#1
DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
if(DropDownList1.Items.FindByValue(“社会新闻“)!= null)
DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
需要注意几点 ,在DropDownList1绑定之后 在调用 上面的代码,
社会新闻 估计你绑定的是text 而找的却是 value 不知 是否是你本意?
#2
ListItem item1 = DropDownList1.Items.FindByValue(ds.Tables[0].Rows[0].ItemArray[2].ToString());
if (item1 != null)
{
item1.Selected = true;
}
if (item1 != null)
{
item1.Selected = true;
}
#3
如果使用数据源帮顶 可以在数据绑定之后 DropDownList的DataBound事件钟写
也可以在Page_PreRender事件钟写
如果手动帮顶DropDownList,在帮顶之后就可以指定了...
也可以在Page_PreRender事件钟写
如果手动帮顶DropDownList,在帮顶之后就可以指定了...
#4
我是自己写的函数
cboNewsKey.SelectedIndex = GetIndexText(DR("NewsKeyWord").ToString, cboNewsKey, cboNewsKey.Items.Count - 1)
'取得选中的下拉框选项,
'第一个参数为与下拉框相比较的值;第二个参数为下拉框的名称;
'第三个参数为下拉框的列表总数
Public Function GetIndexText(ByVal strString As String, ByVal strCboValue As System.Web.UI.WebControls.DropDownList, ByVal intIndexCount As Integer) As Integer
'用循环取得列表项的值,然后判断是否相等
Dim intIndex As Integer
For intIndex = 0 To intIndexCount
If strCboValue.Items.Item(intIndex).Text.ToString = strString Then
Return intIndex
End If
Next
End Function
#6
DropDownList1.Items.FindByValue(“社会新闻“).Selected = true 这个方法是没错的。应该是你数据绑定有错
1.先不选,看绑定数据有没有错
2.确定有给绑定Value值,而不只是Text值
3.如果只有Text值,添加Value值然后DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
或用DropDownList1.Items.FindByText(“社会新闻“).Selected = true
1.先不选,看绑定数据有没有错
2.确定有给绑定Value值,而不只是Text值
3.如果只有Text值,添加Value值然后DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
或用DropDownList1.Items.FindByText(“社会新闻“).Selected = true
#7
谢谢各位大哥。honey52570 说的对,我使用的是数据源绑定,所以我应该把DropDownList.Items.FindByValue("社会新闻").Selected=true写在DropDownList的DataBound事件,就成功了。非常感谢。
#8
lz要干嘛?
#9
等待牛人来答.
#10
this.DropDownList1.SelectedIndex = this.DropDownList1.Items.IndexOf(this.DropDownList1.Items.FindByText("字符串"));
或
this.DropDownList1.SelectedIndex = this.DropDownList1.Items.IndexOf(this.DropDownList1.Items.FindByValue("字符串"));
或
this.DropDownList1.SelectedIndex = this.DropDownList1.Items.IndexOf(this.DropDownList1.Items.FindByValue("字符串"));
#11
我是从另一个页面跳转到这个页面的,我传的是产品ID,即proid,我这个页面是个修改的页面。但是在修改之前我要绑定这个产品的信息。我首先将所有分类信息都绑定到了DropDownList1里面了,我就是想在进入这个页面的时候显示我要修改的产品的分类名称。可是总是只显示DropDownList1的第一个项目。不知道怎么解决?下面是我绑定的分类代码:
CategoriesBLL bll = new CategoriesBLL();
DataSet ds = new DataSet();
ds = bll.GetAllCategories();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ListItem item = new ListItem();
item.Text = ds.Tables[0].Rows[i]["catename"].ToString();
item.Value = ds.Tables[0].Rows[i]["cateid"].ToString();
DropDownList1.Items.Add(item);
}
再下面是我跟据传过来的产品ID绑定该产品的信息:
int id = Convert.ToInt32(Request["proid"]);
ProductsBLL bll = new ProductsBLL();
DataSet ds = new DataSet();
ds = bll.GetProByProID(id);
if (ds.Tables[0].Rows.Count > 0)
{
string catename = ds.Tables[0].Rows[0]["catename"].ToString();
txt_proname.Text = ds.Tables[0].Rows[0]["proname"].ToString();
Image1.ImageUrl = "Products/" + ds.Tables[0].Rows[0]["propic"].ToString();
DropDownList1.Items.FindByText(catename).Selected = true;
}
不知道为什么每次点进来到这个页面的时候,dropdownlist里面的值都不是我想要的值
CategoriesBLL bll = new CategoriesBLL();
DataSet ds = new DataSet();
ds = bll.GetAllCategories();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ListItem item = new ListItem();
item.Text = ds.Tables[0].Rows[i]["catename"].ToString();
item.Value = ds.Tables[0].Rows[i]["cateid"].ToString();
DropDownList1.Items.Add(item);
}
再下面是我跟据传过来的产品ID绑定该产品的信息:
int id = Convert.ToInt32(Request["proid"]);
ProductsBLL bll = new ProductsBLL();
DataSet ds = new DataSet();
ds = bll.GetProByProID(id);
if (ds.Tables[0].Rows.Count > 0)
{
string catename = ds.Tables[0].Rows[0]["catename"].ToString();
txt_proname.Text = ds.Tables[0].Rows[0]["proname"].ToString();
Image1.ImageUrl = "Products/" + ds.Tables[0].Rows[0]["propic"].ToString();
DropDownList1.Items.FindByText(catename).Selected = true;
}
不知道为什么每次点进来到这个页面的时候,dropdownlist里面的值都不是我想要的值
#1
DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
if(DropDownList1.Items.FindByValue(“社会新闻“)!= null)
DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
需要注意几点 ,在DropDownList1绑定之后 在调用 上面的代码,
社会新闻 估计你绑定的是text 而找的却是 value 不知 是否是你本意?
#2
ListItem item1 = DropDownList1.Items.FindByValue(ds.Tables[0].Rows[0].ItemArray[2].ToString());
if (item1 != null)
{
item1.Selected = true;
}
if (item1 != null)
{
item1.Selected = true;
}
#3
如果使用数据源帮顶 可以在数据绑定之后 DropDownList的DataBound事件钟写
也可以在Page_PreRender事件钟写
如果手动帮顶DropDownList,在帮顶之后就可以指定了...
也可以在Page_PreRender事件钟写
如果手动帮顶DropDownList,在帮顶之后就可以指定了...
#4
我是自己写的函数
cboNewsKey.SelectedIndex = GetIndexText(DR("NewsKeyWord").ToString, cboNewsKey, cboNewsKey.Items.Count - 1)
'取得选中的下拉框选项,
'第一个参数为与下拉框相比较的值;第二个参数为下拉框的名称;
'第三个参数为下拉框的列表总数
Public Function GetIndexText(ByVal strString As String, ByVal strCboValue As System.Web.UI.WebControls.DropDownList, ByVal intIndexCount As Integer) As Integer
'用循环取得列表项的值,然后判断是否相等
Dim intIndex As Integer
For intIndex = 0 To intIndexCount
If strCboValue.Items.Item(intIndex).Text.ToString = strString Then
Return intIndex
End If
Next
End Function
#5
#6
DropDownList1.Items.FindByValue(“社会新闻“).Selected = true 这个方法是没错的。应该是你数据绑定有错
1.先不选,看绑定数据有没有错
2.确定有给绑定Value值,而不只是Text值
3.如果只有Text值,添加Value值然后DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
或用DropDownList1.Items.FindByText(“社会新闻“).Selected = true
1.先不选,看绑定数据有没有错
2.确定有给绑定Value值,而不只是Text值
3.如果只有Text值,添加Value值然后DropDownList1.Items.FindByValue(“社会新闻“).Selected = true
或用DropDownList1.Items.FindByText(“社会新闻“).Selected = true
#7
谢谢各位大哥。honey52570 说的对,我使用的是数据源绑定,所以我应该把DropDownList.Items.FindByValue("社会新闻").Selected=true写在DropDownList的DataBound事件,就成功了。非常感谢。
#8
lz要干嘛?
#9
等待牛人来答.
#10
this.DropDownList1.SelectedIndex = this.DropDownList1.Items.IndexOf(this.DropDownList1.Items.FindByText("字符串"));
或
this.DropDownList1.SelectedIndex = this.DropDownList1.Items.IndexOf(this.DropDownList1.Items.FindByValue("字符串"));
或
this.DropDownList1.SelectedIndex = this.DropDownList1.Items.IndexOf(this.DropDownList1.Items.FindByValue("字符串"));
#11
我是从另一个页面跳转到这个页面的,我传的是产品ID,即proid,我这个页面是个修改的页面。但是在修改之前我要绑定这个产品的信息。我首先将所有分类信息都绑定到了DropDownList1里面了,我就是想在进入这个页面的时候显示我要修改的产品的分类名称。可是总是只显示DropDownList1的第一个项目。不知道怎么解决?下面是我绑定的分类代码:
CategoriesBLL bll = new CategoriesBLL();
DataSet ds = new DataSet();
ds = bll.GetAllCategories();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ListItem item = new ListItem();
item.Text = ds.Tables[0].Rows[i]["catename"].ToString();
item.Value = ds.Tables[0].Rows[i]["cateid"].ToString();
DropDownList1.Items.Add(item);
}
再下面是我跟据传过来的产品ID绑定该产品的信息:
int id = Convert.ToInt32(Request["proid"]);
ProductsBLL bll = new ProductsBLL();
DataSet ds = new DataSet();
ds = bll.GetProByProID(id);
if (ds.Tables[0].Rows.Count > 0)
{
string catename = ds.Tables[0].Rows[0]["catename"].ToString();
txt_proname.Text = ds.Tables[0].Rows[0]["proname"].ToString();
Image1.ImageUrl = "Products/" + ds.Tables[0].Rows[0]["propic"].ToString();
DropDownList1.Items.FindByText(catename).Selected = true;
}
不知道为什么每次点进来到这个页面的时候,dropdownlist里面的值都不是我想要的值
CategoriesBLL bll = new CategoriesBLL();
DataSet ds = new DataSet();
ds = bll.GetAllCategories();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
ListItem item = new ListItem();
item.Text = ds.Tables[0].Rows[i]["catename"].ToString();
item.Value = ds.Tables[0].Rows[i]["cateid"].ToString();
DropDownList1.Items.Add(item);
}
再下面是我跟据传过来的产品ID绑定该产品的信息:
int id = Convert.ToInt32(Request["proid"]);
ProductsBLL bll = new ProductsBLL();
DataSet ds = new DataSet();
ds = bll.GetProByProID(id);
if (ds.Tables[0].Rows.Count > 0)
{
string catename = ds.Tables[0].Rows[0]["catename"].ToString();
txt_proname.Text = ds.Tables[0].Rows[0]["proname"].ToString();
Image1.ImageUrl = "Products/" + ds.Tables[0].Rows[0]["propic"].ToString();
DropDownList1.Items.FindByText(catename).Selected = true;
}
不知道为什么每次点进来到这个页面的时候,dropdownlist里面的值都不是我想要的值