在.net转发器中向命令发送多个参数

时间:2011-09-20 15:49:12

标签: c# .net repeater

我有一个转发器,里面有一个链接按钮,我试图用它来执行一些代码:

<asp:LinkButton runat="server" CommandName="SelectCourse" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "crs_no") %>' ID="SelectCourse"> <%# DataBinder.Eval(Container.DataItem, "title1")%></asp:LinkButton>

在我背后的代码中:

protected void Courses_ItemCommand ( object source, RepeaterCommandEventArgs e )
    {
        if ( e.CommandName == "SelectCourse" )
        {
            this.ParentPortlet.PortletViewState [ "crs_no" ] = e.CommandArgument.ToString ( );

            this.ParentPortlet.NextScreen ( "SelectDate" );
        }
    }

这工作正常,但我无法弄清楚如何使用此方法使用多个参数。我想发送一个额外的参数,以便我可以使用第二个参数设置另一个“PortletViewState”。

谢谢!

1 个答案:

答案 0 :(得分:0)

你不能!除非您将参数连接到带分隔符的单个字符串。

但我觉得很讨厌,我使用多个隐藏字段intead,我使用e.Item.FindControl加载命令

protected void Courses_ItemCommand(object source, RepeaterCommandEventArgs e)
{
    if (e.CommandName == "SelectCourse")
    {
        HiddenField hdnCrsNo = e.Item.FindControl("hdnCrsNo") as HiddenField;
        this.ParentPortlet.PortletViewState["crs_no"] = hdnCrsNo.Value;

        this.ParentPortlet.NextScreen("SelectDate");
    }
}