Vincent Maverick Durano
Вот вам пример. Я добавил функцию подсветки строк, чтобы вы могли легко отличить, в какой строке вы находитесь. Он также сохранит выбор между обратными отправками:
Aspx-файл:
<head runat="server">
<title></title>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js" type="text/javascript"></script>
<script type="text/javascript">
var prevRowIndex;
function HighlighRowAndGetValue(row, rowIndex, cellValue) {
var parent = document.getElementById(row);
var currentRowIndex = parseInt(rowIndex) + 1;
if (prevRowIndex == currentRowIndex)
return;
else if (prevRowIndex != null)
parent.rows[prevRowIndex].style.backgroundColor = "#FFFFFF";
parent.rows[currentRowIndex].style.backgroundColor = "#FFFFD6";
prevRowIndex = currentRowIndex;
$('#<%= Label1.ClientID %>').text(cellValue);
$('#<%= hfParentContainer.ClientID %>').val(row);
$('#<%= hfCurrentRowIndex.ClientID %>').val(rowIndex);
$('#<%= hfCC.ClientID %>').val(cellValue);
}
$(function () {
RetainSelectedRow();
});
function RetainSelectedRow() {
var parent = $('#<%= hfParentContainer.ClientID %>').val();
var currentIndex = $('#<%= hfCurrentRowIndex.ClientID %>').val();
var cellValue = $('#<%= hfCC.ClientID %>').val();
if (parent != null) {
HighlighRowAndGetValue(parent,currentIndex,cellValue);
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<h2>You have selected Row: (<asp:Label ID="Label1" runat="server" />)</h2>
<asp:HiddenField ID="hfCurrentRowIndex" runat="server"></asp:HiddenField>
<asp:HiddenField ID="hfParentContainer" runat="server"></asp:HiddenField>
<asp:HiddenField ID="hfCC" runat="server"></asp:HiddenField>
<asp:GridView ID="GridView1" runat="server"
onrowdatabound="GridView1_RowDataBound">
</asp:GridView>
</form>
</body>
</html>
С ФОНОВЫМ КОДОМ:
using System;
using System.Data;
using System.Web.UI.WebControls;
namespace WebFormDemo
{
public partial class GridView : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack) {
GridView1.DataSource = CreateDataSource();
GridView1.DataBind();
}
}
public DataTable CreateDataSource() {
DataTable dt = new DataTable();
DataRow dr;
dt.Columns.Add(new DataColumn("ID", typeof(string)));
dt.Columns.Add(new DataColumn("Name", typeof(string)));
dt.Columns.Add(new DataColumn("Lastname", typeof(string)));
for (int i = 0; i < 20; i++) {
dr = dt.NewRow();
dr[0] = i;
dr[1] = "Name" + i.ToString();
dr[2] = "Last Name" + i.ToString();
dt.Rows.Add(dr);
}
return dt;
}
protected void GridView1_RowDataBound(object sender, System.Web.UI.WebControls.GridViewRowEventArgs e) {
if (e.Row.RowType == DataControlRowType.DataRow) {
e.Row.Attributes.Add("onclick", string.Format("HighlighRowAndGetValue('{0}','{1}','{2}');", e.Row.ClientID, e.Row.RowIndex, e.Row.Cells[1].Text));
}
}
}
}
То
cellValue
Параметр-Значение из второго столбца таблицы.