如何找到Datalist中EditItemTemplate中的控件????

2025-03-01 18:28:57
推荐回答(2个)
回答1:

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;

public partial class test2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{

}
///


/// 在ItemCommand事件中查找指定ID的控件
///

protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
bool isChecked = false;
if (e.CommandName == "你自定义的CommandName")
{
CheckBox checkBox1 = (CheckBox)(e.Item.FindControl("CheckBox1"));
isChecked = checkBox1.Checked;
if (isChecked)
{
ProductID = this.DataList1.DataKeys[e.Item.ItemIndex];
Response.Write(ProductID.ToString());
}

}
}

///
/// 在DataList的每项进行数据绑定的事件中查找指定ID的控件
///

///
///
protected void DataList1_ItemCreated(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int ProductID = 0;
bool isChecked = ((CheckBox)e.Item.FindControl("CheckBox1")).Checked;
if (isChecked)
{
ProductID = this.DataList1.DataKeys[e.Item.ItemIndex];
Response.Write(ProductID.ToString());
}
}
}
///
/// 通过遍历DataList的项来查找其中的控件
///

///
///
protected bool GetSelectedCheckBox(DataList DL)
{
int itemCount = DL.Items.Count;
int ProductID = 0;
bool isChecked = false;
for (int i = 0; i < itemCount; i++)
{
isChecked = ((CheckBox)DL.Items[i].FindControl("CheckBox1")).Checked;
if (isChecked)
{
ProductID = this.DataList1.DataKeys[e.Item.ItemIndex];
Response.Write(ProductID.ToString());
}
}
}
}

页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test2.aspx.cs" Inherits="test2" %>





无标题页







<%# DataBinder.Eval(Container.DataItem,"ProductName" %>



<%# DataBinder.Eval(Container.DataItem,"ProductName" %>





回答2:

你要找的是DataList的EditItem的子控件,可以这样:
protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
{
if (e.CommandName == "test")
{
DataList dl=((DataList)source);
Label label =(Label)( dl.Items[dl.EditItemIndex].FindControl("Label1"));
label.Text = "adfad";
}
}