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

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

Сообщение Anonymous »

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

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

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

innerDataList.DataSource = GetDataTable("SELECT DISTINCT IdCL,Cladire FROM tblCladire WHERE IdOB= @IdOB;", prm);
innerDataList.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)
{
TextBox idcl = (TextBox)(e.Item.FindControl("txtIDCL"));
int id = Convert.ToInt32(idcl.Text);
DataList secondDataList = e.Item.FindControl("DataList3") as DataList;
List prm = new List
{
new SqlParameter("@IdCL", id)
};

secondDataList.DataSource = GetDataTable("SELECT DISTINCT IdCA,Camera FROM tblCamera WHERE IdCL =@IdCL;", prm);
secondDataList.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;
var result = new DataTable();
using (var conn = new SqlConnection(constr))
using (var cmd = new SqlCommand(query, conn))
using (var sda = new SqlDataAdapter(cmd))
{
if (prms is object)
{
foreach (var prm in prms)
{
cmd.Parameters.Add(prm);
}
}
sda.Fill(result);
}
return result;
}

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


































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

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

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

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

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

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