Repeater控件中的链接按钮重定向到网格视图

时间:2011-11-15 02:13:58

标签: asp.net hyperlink

我正在开发一个Web应用程序,我有一个转发器控件。转发器控件内部有一个链接按钮。单击链接按钮时,我希望它重定向到一个页面,该页面将是该特定用户(已单击)的数据输入页面。它必须使用user-id / emplid并预先填充新页面中的某些字段,并且应允许其他字段进行数据输入。

我的问题 -

  1. 我应该如何重定向到新的数据输入页面?我还没有决定在页面上。我认为它将是一个表单页面或网格视图,并且将是一个单独的页面。
  2. 代码:

        <asp:LinkButton ID="getDetails" OnCommand="getDetails_cmd" runat="server"
                            CommandArgument='<%#DataBinder.Eval(Container.DataItem,"Emplid")%>
    ' Text='<%#DataBinder.Eval(Container.DataItem,"NAME")%>'
                                CommandName="Details"></asp:LinkButton>
    
    1. 重定向到页面后,我想,使用命令参数,我可以获得emplid。我传递了多个值?说出页面的键?

    2. 我应该如何更新页面中的多个表?

    3. 任何帮助都会非常感激。

      谢谢,

2 个答案:

答案 0 :(得分:1)

如果您正在尝试指向新页面,则linkbutton可能不是可行的方法,因为它通常会回发到同一表单,在查询字符串中发送emplid的标准超链接可以正常工作。在新页面中,使用Request.Querystring("emplid")从查询字符串中获取emplid。至于保存到多个表,有很多方法可以做到这一点,一种方法是在事务管理器中包装多个db更新调用。

答案 1 :(得分:1)

您需要处理ItemCommand Repeater控制事件。

<asp:Repeater ID="Repeater1" runat="server" 
        onitemcommand="Repeater1_ItemCommand">
     <ItemTemplate>
         <asp:LinkButton 
            ID="getDetails" 
            runat="server"
            Text='<%# Eval("NAME") %>'
            CommandName="cmd"
            CommandArgument='<%# Eval("Empid") %>'
            >
            </asp:LinkButton>
     </ItemTemplate>
</asp:Repeater>

ItemCommand事件的处理程序,

protected void Repeater1_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "cmd")
    {
        Session["empid"]=e.CommandArgument;
        Response.Redirect("~/page1.aspx");
    }
}