在第一次单击链接按钮不启动/工作?

时间:2014-01-19 15:08:51

标签: c#

大家好,我有一个链接按钮。首次点击它不会重定向到目标页面,第二次点击它的工作原理是什么?

 <asp:LinkButton ID="lnkAttDetail" runat="server" Text='<%# (DataBinder.Eval(Container.DataItem, "schdate") == DBNull.Value ? " " : Convert.ToDateTime(Eval("schdate").ToString()).ToString("dd/MMM/yyyy"))%>' CausesValidation="false"
                                     CssClass="navigationlink" CommandName='<% # Eval("schdate") %>' CommandArgument='<%#Eval("schdate") + ";" + Eval("emp_id") %>' 
                                    OnClick="lnkAttDetail_Click" ForeColor="black" Font-Underline="false"  />

 protected void lnkAttDetail_Click(object sender, System.EventArgs e)
    {

        LinkButton lnkAttDetail = (LinkButton)sender;
        string[] arguments = lnkAttDetail.CommandArgument.Split(';');
        string schdate = arguments[0];
        string id = arguments[1];


        lnkAttDetail.ForeColor = System.Drawing.Color.Orange;

        lnkAttDetail.PostBackUrl = string.Format("ManualAttendance.aspx?schdate={0}&id={1}", schdate, id) + "&M=" + Request.QueryString["M"] + "&S=" + int.Parse(Request.QueryString["S"].ToString()) + "&sys=" + ((System.Collections.Generic.Dictionary<string, string>)Session["User"])["Token"];

    } 

2 个答案:

答案 0 :(得分:1)

正常工作,首次点击即可设置您未提交的链接按钮PostBackUrl。因此,在第二次点击工作。您可以使用Response.Redirect方法

使用

Response.Redirect(string.Format("ManualAttendance.aspx?schdate={0}&id={1}", schdate, id) 
    + "&M=" + Request.QueryString["M"]
    + "&S=" + int.Parse(Request.QueryString["S"].ToString()) 
    + "&sys=" 
    + ((System.Collections.Generic.Dictionary<string, string>)Session["User"])["Token"]);

而不是

lnkAttDetail.PostBackUrl = string.Format("ManualAttendance.aspx?schdate={0}&id={1}", schdate, id) 
    + "&M=" 
    + Request.QueryString["M"] 
    + "&S=" 
    + int.Parse(Request.QueryString["S"].ToString()) 
    + "&sys=" 
    + ((System.Collections.Generic.Dictionary<string, string>)Session["User"])["Token"];

答案 1 :(得分:1)

只是因为您在第一次点击时设置了PostBackUrl

链接按钮会重定向到其PostBackUrl属性中设置的网址,该属性在首次点击前为空。 如果要在第一次单击时重定向,则必须使用:

Response.Redirect("YOUR GENERATED URL HERE");

PostBackUrl 是一个属性,而不是方法。