#asp.net
#asp.net
Вопрос:
я добавил элемент управления кнопкой в gridview, и я хочу перенаправить на другую страницу в событии нажатия кнопки, а также я хочу получить доступ к значениям выбранной строки в gridview и показать эти значения на другой странице в событии нажатия кнопки, которое находится внутри gridview, может кто-нибудь, пожалуйста, помочь мне в этом.
Ответ №1:
это должно быть полезно:http://msdn.microsoft.com/en-us/library/bb907626.aspx
для доступа к значениям внутри события RowCommand сначала найдите свою строку (по индексу):
int index = Convert.ToInt32(e.CommandArgument);
GridViewRow row = MyGridView.Rows[index];
а затем элементы управления внутри него, которые содержат нужные вам значения:
Label MyLabel= (Label)row.FindControl(MyLabel);
после этого все, что вам нужно сделать, это перейти на свою страницу и отправить с ней значения из ваших элементов управления (сделайте это с помощью querystring):
Server.Transfer("MyPage.aspx?value=" MyLabel.Text)
здесь вы можете прочитать больше о RowCommand
событии gridview: http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.rowcommand.aspx
Ответ №2:
Вам нужно добавить либо поле ButtonField, либо поле TemplateField с кнопкой внутри, а затем вы можете добавить свой код в RowCommand и использовать e.CommandName и e.CommandArgument
Для перенаправления вы можете использовать Response.Перенаправление (адрес)
Чтобы увидеть значения, зависит от того, где в программе вы хотите это сделать. Если во время привязки к данным вы можете использовать dataitem («столбец»). Вне привязки к данным вы можете перейти через Gridview.Соберите строки для нужной строки, а затем посмотрите на строку.Ячейки (номер столбца).Введите текст, чтобы увидеть значение.
Ответ №3:
у нас есть событие в gridview под названием gridview rowcommand event, в котором вы можете написать код для перенаправления на другую страницу с помощью button. Сначала вам нужно привязать значение, которое вы хотите передать, к свойству кнопки, называемому commandargument.
protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
{
Response.Redirect("abc.aspx?id=" e.CommandArgument);
//here id means passing the value using querystring to another page.
}
Ответ №4:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:BoundField HeaderText="ID" DataField="ID" />
<asp:BoundField HeaderText="Name" DataField="fullname" />
<asp:TemplateField HeaderText="Action">
<ItemTemplate>
<asp:Button runat="server" ID="btnDelete" Text="Delete" OnClick="btnDelete_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
// Это фокусирует текущую строку, в которой находится кнопка. вы можете выполнять все события серверных контроллеров
// вместо кнопки, например, LinkButton, изменяется индекс выпадающего списка…
protected void btnDelete_Click(object sender, EventArgs e)
{
Button btn = (Button)sender;
GridViewRow gvRow = (GridViewRow)btn.NamingContainer;
string id = gvRow.Cells[0].Text;
string name = gvRow.Cells[1].Text;
//use these values in query string or any logic you prefer for cross page posting
Response.Redirect("your URL ?id=" id "amp;name=" name);
}