Мне нужно загрузить большое количество данных в динамическое представление сетки.Вид сетки с кнопкой ссылки, созданной динамически на основе данных.При нажатии на кнопку ссылки должна быть загружена Inner Grid.Он работает нормально.
Но каждый раз, при нажатии кнопки ссылки, на событии, связанном со строкой, запускается привязка к основной сетке.
С в событии, связанном со строкой, внутренняя сетказагружается для каждой строки в основной сетке, которая уже нажата.я поддерживаю состояние кнопки ссылки по ссылке (поле id конкретной строки) в сеансе и, используя значение сеанса, загружаю внутреннюю сетку в каждой строке в основной сетке, которая соответствует значению сеанса в событии, связанном со строкой.
Но загрузка занимает много времени.Есть ли другой способ привязать данные к динамическому представлению сетки, нажав кнопку ссылки и сохранить внутреннюю сетку нажатой кнопки ссылки *
Мой код
if (e.Row.RowType == DataControlRowType.DataRow)
{
if (strCallTypeName[intLoop].ToLower() != "total")
{
LinkButton lnk = new LinkButton();
lnk.Text = ((System.Data.DataRowView)(e.Row.DataItem)).Row[strCallTypeName[intLoop]].ToString();
lnk.CommandArgument = strCallTypeName[intLoop]
+ "|||"
+ ((System.Data.DataRowView)(e.Row.DataItem)).Row["UserId"].ToString()
+ "|||"
+ ((System.Data.DataRowView)(e.Row.DataItem)).Row["Service"].ToString()
+ "|||"
+ e.Row.RowIndex;
//lnk.Click += new EventHandler(lnk_Click);
//lnk.CommandName = "Edit";
lnk.Click += new EventHandler(lnk_Click);
lnk.ToolTip = strCallTypeName[intLoop];
lnk.CssClass = "lnk";
tc.Controls.Add(lnk);
string strUserID =grdSummaryCall.DataKeys[e.Row .RowIndex].Value.ToString();
string strSessionUserDetails = string.Empty;
strSessionUserDetails = (string)Session["GridUserDetails"];
if (strSessionUserDetails != string.Empty && strSessionUserDetails !=null)
{
string[] strSplitUserDetails = strSessionUserDetails.Split(new string[] { "~" }, StringSplitOptions.None);
Panel pnlTable = (Panel)e.Row.FindControl("pnlTable");
for (int i = 0; i < strSplitUserDetails.Length; i++)
{
string[] strUserDetails = strSplitUserDetails[i].Split(new string[] { "," }, StringSplitOptions.None);
if (strUserID == strUserDetails[1].ToString())
{
if (pnlTable.Visible == false)
{
GetUserCallDetails(strUserDetails, e.Row);
pnlTable.Visible = true;
}
}
}
}
}
}