OnItemCommand не срабатывает из вложенного списка данныхC#

Место общения программистов C#
Ответить
Anonymous
 OnItemCommand не срабатывает из вложенного списка данных

Сообщение Anonymous »

У меня есть 3 вложенных данных DataLists, загружаемых из SQL-запроса для каждого. DataList1_ItemCommand работает правильно, но DataList2_ItemCommand даже не запускается.
protected void DataList1_ItemCommand(Object source, DataListCommandEventArgs e)
{
if (e.CommandName == "Obiectiv")
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
int idob = Convert.ToInt32(DataList1.DataKeys[e.Item.ItemIndex].ToString());

DataList firstDataList = e.Item.FindControl("DataList2") as DataList;

List prm = new List();
prm.Add(new SqlParameter("@IdOB", idob));

firstDataList.DataSource = GetDataTable("SELECT DISTINCT IdCL,Cladire FROM tblCladire WHERE IdOB= @IdOB;", prm);
firstDataList.DataBind();

HtmlControl theDivS = (HtmlControl)e.Item.FindControl("DivS");
theDivS.Attributes["class"] = theDivS.Attributes["class"].Replace("hidden", "").Trim();
}
}
}

protected void DataList2_ItemCommand(Object source, DataListCommandEventArgs e)
{
if (e.CommandName == "Cladire")
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
DataList secondDataList = e.Item.FindControl("DataList2") as DataList;
int idcl = Convert.ToInt32(secondDataList.DataKeys[e.Item.ItemIndex].ToString());

DataList thirdDataList = e.Item.FindControl("DataList3") as DataList;
List prm = new List
{
new SqlParameter("@IdCL", idcl)
};

thirdDataList.DataSource = GetDataTable("SELECT DISTINCT IdCA,Camera FROM tblCamera WHERE IdCL =@IdCL;", prm);
thirdDataList.DataBind();

HtmlControl theDivT = (HtmlControl)e.Item.FindControl("DivT");
theDivT.Attributes["class"] = theDivT.Attributes["class"].Replace("hidden", "").Trim();
}
}
}
private static DataTable GetDataTable(string query, IEnumerable prms = null)
{
string constr = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
using (SqlConnection conn = new SqlConnection(constr))
{
using (SqlCommand cmd = new SqlCommand())
{
cmd.CommandText = query;

using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.Connection = conn;
sda.SelectCommand = cmd;

using (DataSet ds = new DataSet())
{
DataTable dt = new DataTable();
if (prms is object)
{
foreach (var prm in prms)
{
cmd.Parameters.Add(prm);
}
}
sda.Fill(dt);
return dt;
}
}
}
}
}

Первый набор данных загружается при загрузке страницы и работает нормально. Затем для каждого значения в списке при щелчке (команда) загружается второй набор данных в DataList1, а затем при щелчке (команда) загружается третий набор данных. На данный момент у меня есть первый и второй набор данных. CommandName="Cladire" не запускается.


































Подробнее здесь: https://stackoverflow.com/questions/791 ... d-datalist
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»