我有一个Datalist,我正试图找到dropdown
中的datalist
,在ddl
的第一个索引中添加文字我试图这样做但是这个出现了( object reference not set
....)
这是我的代码:
private DropDownList DDLProduct;
protected void Page_Load(object sender, EventArgs e)
{
}
protected void DDlProduct_DataBound(object sender, EventArgs e)
{
DDLProduct.Items.Insert(0, new ListItem("Swithch Model", "0"));
}
protected void DLProduct_ItemDataBound(object sender, DataListItemEventArgs e)
{
DDLProduct = e.Item.FindControl("DDlProduct") as DropDownList;
}
此致
答案 0 :(得分:1)
你应该检查datalist的ItemDataBound事件,看看它是ListItemType.Item还是ListItemType.AlternatingItem类型,否则你是因为你在数据列表的标题上而点击空引用:
在C#中:
if ((e.item.ItemType == ListItemType.Item) | (e.item.itemType == ListItemType.AlternatingItem))
在VB.net中:
if (e.Item.ItemType = ListItemType.Item) OR (e.Item.ItemType = ListItemType.AlternatingItem)
然后你想看看你是否能找到它:
在C#中:
DropDownList d = (DropDownList) e.Item.FindControl("DDLProduct")
在vb.net中
Dim d as DropDownList = CType(e.Item.FindControl("DDLProduct"), DropDownList)
找到下拉列表框后,您可以执行以下操作:
d.Items.Insert(0, new ListItem("Switch Model", "0"));
答案 1 :(得分:1)
也许你只需要AppendDataBoundItems: - )
答案 2 :(得分:0)
将代码放在if语句下面。
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem) {
// Your code goes here to find the drop down list.
}
由于页脚行的标题,您将获得空引用异常,因为此下拉列表不存在。
答案 3 :(得分:0)
试试这个。
protected void DLProduct_ItemDataBound(Object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
private DropDownList DDLProduct = e.Item.FindControl("DDlProduct") as DropDownList;
DDLProduct.Items.Insert(0, new ListItem("Swithch Model", "0"));
}
}
答案 4 :(得分:0)
使用它,它正在工作:
sQuery = "select * from tbl_Ticket_Msg where us_ID=0 and t_status='Open' order by T_id asc";
ds3.Clear();
ds3 = cl.getDataSet(sQuery);
if (ds3.Tables[0].Rows.Count > 0)
{
DataList1.DataSource = ds3.Tables[0];
DataList1.DataBind();
lbltotal.Text = "Total Messages : " + ds3.Tables[0].Rows.Count.ToString();
int row = Convert.ToInt32(ds3.Tables[0].Rows.Count);
for (int i = 0; i < row; i++)
{
DropDownList ddl = (DropDownList)DataList1.Items[i].FindControl("DropDownList1");
ddl.DataSource = BindServicetoddl();
ddl.DataTextField = "name1";
ddl.DataValueField = "us_ID";
ddl.DataBind();
}
}
答案 5 :(得分:-1)
(e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)