Как гласит заголовок: Я должен был иметь возможность выполнить поиск, верните данные поиска обратно в Gridview, в котором есть кликабельные строки, и после того, как в строке будет нажмет нажатие, мне нужно будет получить некоторую информацию из этой строки и поместить ее в новое место Div на той же странице, чтобы добавить больше информации для этой строки. < /p>
Search
< /code>
В настоящее время, когда я нажимаю на строку, он возвращает ошибку: «Все заголовки были отправлены». Я оставил код в t =, чтобы вы могли увидеть, что я попробовал, и все еще не могу заставить его работать, < /p>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
getClinicalTypes();
}
// Restore selected row color after postback
HighlightSelectedRow();
}
protected void Search(string fname, string lname, string clinicalType)
{
List studInfo = new List();
if((Regex.IsMatch(fname, @"\d")) )
{
studInfo = CTStudentSearch.ListSearch("I", fname, "", clinicalType);
}
else
{
studInfo = CTStudentSearch.ListSearch("N", fname, lname, clinicalType);
}
gvHistoricalData.DataSource = studInfo;
gvHistoricalData.DataBind();
}
protected void btnSearch_Click(object sender, EventArgs e)
{
string searchText = "";
string fname = (!string.IsNullOrWhiteSpace(txtStudentFirstName.Text)) ? txtStudentFirstName.Text : "";
string lname = (!string.IsNullOrWhiteSpace(txtStudentLastName.Text)) ? txtStudentLastName.Text : "";
bool clinicalTypeChecked = (ddlClinicalType.SelectedIndex > 0) ? true : false;
string clinicalType = null;
if (clinicalTypeChecked == true)
{
clinicalType = ddlClinicalType.SelectedValue;
Search(fname, lname, clinicalType);
}
}
protected void gvHistoricalData_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onMouseOver", "this.originalstyle=this.style.backgroundColor;this.style.backgroundColor='#5D7B9D';this.style.cursor='pointer';");
e.Row.Attributes.Add("OnMouseOut", "this.style.backgroundColor=this.originalstyle;");
// Updated script to prevent row selection if clicking inside an input, button, or link
//string script = "if(event.srcElement && (event.srcElement.tagName.toLowerCase() === 'input' || event.srcElement.tagName.toLowerCase() === 'button' || event.srcElement.tagName.toLowerCase() === 'a')) return;";
//e.Row.Attributes["onclick"] = script + Page.ClientScript.GetPostBackClientHyperlink(gvHistoricalData, "Select$" + e.Row.RowIndex);
// Add a hidden button inside the row to trigger postback
LinkButton lb = new LinkButton();
lb.CommandName = "Select";
lb.CommandArgument = e.Row.RowIndex.ToString();
lb.Style["display"] = "none"; // Hide the button
e.Row.Cells[0].Controls.Add(lb);
// Add OnClientClick event
lb.OnClientClick = "return showInputDiv(); ";
// Optionally, set a data attribute to store the row index
lb.Attributes["data-row-index"] = e.Row.RowIndex.ToString();
e.Row.Cells[0].Controls.Add(lb);
}
}
Подробнее здесь: https://stackoverflow.com/questions/795 ... at-data-in