Я подозреваю, что это уже упоминалось в некоторых ответах, но я немного изменю это, чтобы получить полный рабочий ответ (проще найти и использовать).
npm install -g http-server
. index.html
/ yoursome.html
находится. http-server -c-1
Откройте веб-браузер до http://localhost:8080
или http://localhost:8080/yoursome.html
- в зависимости от вашего имени файла html.
У меня есть решение.
Это - то, что я сделал:
if(e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes["onClick"] = "location.href='view.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "id") + "'";
}
я загнал предыдущий код в событии RowDataBound.
protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string abc = ((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString();
e.Row.Attributes["onClick"] = "location.href='Default.aspx?id=" + abc + "'";
}
}
Ваш идентификатор может быть связан с элементом данных, отображенным в gridview?
Раз так можно использовать e. Строка. DataItem и состав исполнителей это к любому типу это.
щелчок строки в сетке просматривает перенаправление к другим работам страницы
protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string abc = ((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString();
e.Row.Attributes["onClick"] = "location.href='Default.aspx?id=" + abc + "'";
}
}
, абсолютно прекрасным
Для этого можно использовать событие RowCommand представления сетки. В вашей кнопке / ссылке, где вы хотите установить щелчок, установите CommandName и CommandArgument, которые вы можете принять в параметре EventArgs метода события.
Martijn,
Вот еще один пример с изящной подсветкой строк и курсором в стиле href:
protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#ceedfc'");
e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor=''");
e.Row.Attributes.Add("style", "cursor:pointer;");
e.Row.Attributes.Add("onclick", "location='patron_detail.aspx?id=" + e.Row.Cells[0].Text + "'");
}
}
Приведенный выше код работает в .NET 3.5. Однако вы не можете установить для своего столбца id значение Visible = "false", потому что вы получите пустое значение строки запроса для вашего ключа id:
<asp:GridView ID="gvSearch" runat="server" OnRowDataBound="gvSearch_RowDataBound" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="id" Visible="false" />
<asp:BoundField DataField="first_name" HeaderText="First" />
<asp:BoundField DataField="last_name" HeaderText="Last" />
<asp:BoundField DataField="email" HeaderText="Email" />
<asp:BoundField DataField="state_name" HeaderText="State" />
</Columns>
</asp:GridView>
Поэтому вместо этого замените первый столбец на это:
<asp:BoundField DataField="id" ItemStyle-CssClass="hide" />
Добавьте этот css в вверху страницы:
<head>
<style type="text/css">
.hide{
display:none;
}
</style>
<head>
Но чтобы скрыть первую ячейку строки заголовка, добавьте это в свой gvSearch_RowDataBound () в коде программной части:
if (e.Row.RowType == DataControlRowType.Header)
{
e.Row.Cells[0].CssClass = "hide";
}
Очевидно, вы могли бы скрыть столбец id и в коде программной части, но это приведет к тому, что в вашей разметке будет больше текста, чем в классе css:
e.Row.Cells[0].Attributes.Add("style", "display:none;");
e.Row.Attributes.Add("style", "cursor:pointer;");
protected void gvSearch_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string abc = ((GridView)sender).DataKeys[e.Row.RowIndex].Value.ToString();
e.Row.Attributes["onClick"] = "location.href='Default.aspx?id=" + abc + "'";
}
}