大家好,我有一个链接按钮。首次点击它不会重定向到目标页面,第二次点击它的工作原理是什么?
<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"];
}
答案 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 是一个属性,而不是方法。