Я довольно новичок в ASP.NET. У меня есть термин проект; проблема, с которой я сталкиваюсь, описана следующим образом:Получение выделенного объекта из GridView
- У меня есть страница с именем Контакты.
- У меня есть класс под названием «Пользователь».
- У меня есть ArrayList
User
, который привязан как источник данных к Gridview вContacts
.
Что я хочу сделать, так это то, что когда я нажимаю на контакт из сетки, я хочу открыть новую страницу, в которой будут указаны детали выбранного контакта. Для этого мне нужен контакт в переменной Session
.
Моя проблема в том, что я не знаю, как «извлечь» выделенный объект из GridView. Я пробовал событие SelectedIndexChanged
, но это не работает, потому что ответ не перенаправляется на новую страницу.
Я рассмотрел возможность создания одной колонки GV поля гиперссылки, но это перенаправит ответ только на новую страницу. Он не сохраняет выбранный контакт в переменной сеанса.
Edit: (код)
HTML
<asp:GridView ID="GVV2" runat="server" AutoGenerateColumns="False"
Height="25px"style="margin-right: 4px" Width="616px"
onselectedindexchanged="GVV2_SelectedIndexChanged" >
<Columns>
<asp:TemplateField>
<HeaderStyle CssClass="checkBoxCell" />
<ItemStyle CssClass="checkBoxCell" />
<ItemTemplate>
<asp:CheckBox ID="chk" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="FullName_" HeaderText="Name">
<HeaderStyle CssClass="SenderCell" />
<ItemStyle CssClass="SenderCell" />
</asp:BoundField>
<asp:HyperLinkField DataTextField="EmailID_" HeaderText="Email ID"
NavigateUrl="~/ViewContact1.aspx" >
<HeaderStyle CssClass="emailCell" />
<ItemStyle CssClass="emailCell a.decor" />
</asp:HyperLinkField>
</Columns>
</asp:GridView>
Код За
public partial class Contacts1 : System.Web.UI.Page
{
Storage1 STO;
String currentUser;
Users1 selectedUser;
protected void Page_Load(object sender, EventArgs e)
{
Initiation();
GVV2.DataSource = Contact.getContactList(currentUser, STO);
GVV2.DataBind();
}
private void Initiation()
{
if (Session["SignInUser"] == null)
Session["SignInUser"] = currentUser;
else currentUser= (String)Session["SignInUser"];`
if (Session["Storage"] == null)
Session["Storage"] = STO;
else
{
STO= new Storage1();
STO = (Storage1)Session["Storage"];
}
}
protected void GVV2_SelectedIndexChanged(object sender, EventArgs e)
{
Session["SelectedContact"]=GVV2.SelectedRow;
Response.Redirect("ViewContact1.aspx");
}
}
Пожалуйста, укажите код сома :) – Softwarehuset
хорошо я буду. –