Привязать два атрибута ["onclick"]
Я получил GridView, где я хочу связать два события (?), Когда я нажимаю на первую ячейку.
Оба события /onclick находятся в RowDataBound.
Первый дает мне selectedindex, чтобы я мог использовать SelectedIndexChanged и сохранить строку в сеансе.
e.Row.Cells[1].Attributes["onClick"] = ClientScript.GetPostBackClientHyperlink(this.gvProd, "Select$" + e.Row.RowIndex);
Второй отправляет меня на другую страницу, где я собираюсь отобразить то, что сохранено в сеансе.
e.Row.Cells[1].Attributes["onClick"] = "location.href='products.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "Namn") + "'";
Так что я хочу, чтобы выстрелить по одному на клик. Они оба работают без посторонней помощи, но это не помогает мне. Я новичок, и Google не может помочь мне на этот раз:(
Мир!
2 ответа
Почему вы не отправляете значение в строке запроса URL? Быстрое решение проблемы будет использовать невидимый элемент управления и установить сеанс.
<asp:TemplateField HeaderText="" SortExpression="" ItemStyle-CssClass="GridItemLeftText" ItemStyle-Width="5%" HeaderStyle-CssClass="GridHeaderLeftTextLink" HeaderStyle-ForeColor="White" HeaderStyle-Width="5%">
<ItemTemplate>
<asp:ImageButton ID="btnDelete" CommandName="Delete task" runat="server" CommandArgument='<%#Eval("id")%>' ImageUrl="../images/iconDelete.gif" OnClick="deleteTask" />
</ItemTemplate>
</asp:TemplateField>
protected void deleteTask(object sender, EventArgs e)
{
//set session
//Open Popup
}
Теперь вы можете установить сессию в Code позади функции ( Deletetask) и вызвать функцию js, чтобы открыть всплывающее окно из codebehind
Это команды javascript, поэтому попробуйте добавить точку с запятой между командами:
e.Row.Cells[1].Attributes["onClick"] = ClientScript.GetPostBackClientHyperlink(this.gvProd, "Select$" + e.Row.RowIndex) + ";location.href='products.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "Namn") + "'";