1

当我单击第一个单元格时,我得到了一个 GridView,我想在其中绑定两个事件(?)。

两个事件/onclick 都在 RowDataBound 中。

第一个给了我 selectedindex,所以我可以使用 SelectedIndexChanged 并在 Session 中保存行。

     e.Row.Cells[1].Attributes["onClick"] = ClientScript.GetPostBackClientHyperlink(this.gvProd, "Select$" + e.Row.RowIndex);

第二个将我发送到另一个页面,我将在其中显示 Session 中保存的内容。

   e.Row.Cells[1].Attributes["onClick"] = "location.href='products.aspx?id=" + DataBinder.Eval(e.Row.DataItem, "Namn") + "'";

所以我想要的是通过一个 onClick 来触发两者。他们都单手工作,但这对我没有帮助。我是新手,这次 Google 帮不了我 :(

安息吧!

4

2 回答 2

1

为什么不在 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
        }

现在您可以在代码隐藏函数(Deletetask)中设置会话并调用js函数从代码隐藏打开弹出窗口

于 2013-11-25T16:23:35.903 回答
0

这些是 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") + "'";
于 2013-11-25T16:27:48.270 回答