【问题标题】:How can i pass my two value through commandargument or another method in htmlgenericcontrol and c#?如何通过命令参数或 htmlgenericcontrol 和 c# 中的其他方法传递我的两个值?
【发布时间】:2012-04-06 13:26:31
【问题描述】:

我编写了一个创建 imagebutton 的函数,我想在单击 imagebutton 时传递我的 id 和 subId 我该怎么做。我尝试使用命令参数方法(objImage.CommandArgument = id;)但我无法在 imagebuttonclick 函数中处理我如何调用它以及当我按下 imagebutton 时如何传递 id 和 sub id

 public HtmlGenericControl CreateDIV_OyVerme_Sub_Yildiz(string id, int subId)
    {
        HtmlGenericControl objDiv = new HtmlGenericControl("div");
        objDiv.ID = strControlName_DivYildiz + id + "_" + subId;

        objDiv.Attributes.Add("class", strClassName_DivYildiz);
        //objDiv.Attributes.Add("runat", "server");

        ImageButton objImage = new ImageButton();
        objImage.Attributes.Add("runat", "server");

         ///////*******************
        objImage.CommandArgument = id; 
          ///***********


       objImage.Click += new ImageClickEventHandler(WebForm4.ImageButtons_Click);


        objImage.ID = strControlName_ImageYildiz + id +"_" + subId;
        objImage.ImageUrl = strImgSrc_yildiz;
        objImage.OnClientClick = strOnClientClickFunc_yildiz;
       // objImage.Attributes.Add("OnClick","WebForm4.amethod (o;"); 
        objImage.Style.Add(HtmlTextWriterStyle.Height, "19px");
        objImage.Style.Add(HtmlTextWriterStyle.Width, "20px");
        objImage.Style.Add(HtmlTextWriterStyle.BorderWidth, "0px");
        objImage.Style.Add(HtmlTextWriterStyle.Position, "relative");
        objImage.Style.Add(HtmlTextWriterStyle.Top, "13px");
        objImage.Style.Add(HtmlTextWriterStyle.Left, "6px");
        objImage.Style.Add("float", "left");
        objImage.ToolTip = subId + "/" + 5;
        // calling the method 
       // objImage.Attributes.Add("OnClientClick", "return(GetRssID(objRssItem));");

      //  var duck = objRssItem;

      //  objImage.Click += (s, e) => { WebForm4.amethod(objRssItem); };
       //objImage.Click += WebForm4.amethod (objRssItem); 

        objDiv.Controls.Add(objImage);

        return objDiv;
    }

protected void ImageButton1_Click(object sender, ImageClickEventArgs e) {

    }

【问题讨论】:

    标签: c# asp.net .net command-line-arguments htmlgenericcontrol


    【解决方案1】:

    您可以在 HTML 中添加任何属性,例如

    objImage.Attributes.Add("MyId", "Id");
    objImage.Attributes.Add("MySubId", "SubId");
    

    然后可以在点击处理程序中访问它:

    protected void ImageButton1_Click(object sender, ImageClickEventArgs e) {
        ImageButton objImage = (ImageButton) sender;
        var myId = objImage.Attributes["MyId"];
        var mySubId = objImage.Attributes["MySubId"];
    }
    

    【讨论】:

    • 我该如何使用它。在点击方法中 public static void ImageButtons_Click(object sender, ImageClickEventArgs e) { var myId = sender.Attributes["MyId"]; }
    • 不知道为什么你有一个静态的点击处理程序,或者它在你的代码中的什么位置。但是,如果当您单击 ImageButton 时该事件正确触发,它应该可以工作 - 尝试将“...void ImageButtons_Click(object sender, .." 更改为 ..void ImageButtons_Click(ImageButton sender, .."
    猜你喜欢
    • 2011-08-21
    • 2012-04-07
    • 2011-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-10
    • 1970-01-01
    • 2018-07-06
    相关资源
    最近更新 更多