我正在开发一个Web应用程序,我有一个转发器控件。转发器控件内部有一个链接按钮。单击链接按钮时,我希望它重定向到一个页面,该页面将是该特定用户(已单击)的数据输入页面。它必须使用user-id / emplid并预先填充新页面中的某些字段,并且应允许其他字段进行数据输入。
我的问题 -
代码:
<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>
重定向到页面后,我想,使用命令参数,我可以获得emplid。我传递了多个值?说出页面的键?
我应该如何更新页面中的多个表?
任何帮助都会非常感激。
谢谢,
答案 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");
}
}