您的位置:首页 > 其它

获取触发postback事件的控件的名称

2012-10-31 18:25 288 查看
#region [ 获取触发postback事件的控件的名称 ]
/// <summary>
/// 获取触发postback事件的控件的名称. by ngye, 2012-10-31
/// </summary>
/// <returns></returns>
public static string GetPostBackControlName()
{
    Page page = System.Web.HttpContext.Current.CurrentHandler as Page;
    Control control = null;
    string ctrlname = page.Request.Params["__EVENTTARGET"];
    if (ctrlname != null && ctrlname != String.Empty)
    {
        control = page.FindControl(ctrlname);
    }
    else
    {
        Control c;
        foreach (string ctl in page.Request.Form)
        {
            if (ctl.EndsWith(".x") || ctl.EndsWith(".y"))
            {
                c = page.FindControl(ctl.Substring(0, ctl.Length - 2));
            }
            else
            {
                c = page.FindControl(ctl);
            }
            if (c is System.Web.UI.WebControls.Button ||
                     c is System.Web.UI.WebControls.ImageButton)
            {
                control = c;
                break;
            }
        }
    }
    if (control != null)
        return control.ID;
    else
        return string.Empty;
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: