Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass multiple values through command argument in Asp.net?

I have ImageButton with CommandArgument attribute which is having multiple Eval value. When I click one of them I want to pass values to ImageButton2_Click event but it does not work because Command arguments is null.

<div class="sag-re-icerik" id="icerik2" runat="server">Lorem ipsum dolor sit amet, consectetur commodo et convallis et, auctor viverra metus. Aenean pharetra, arcu nec viverra mollis, turpis neque feugiat massa, non dapibus neque nunc ac orci. </div>     <div class="oy-verme">         <div class="yildiz"><asp:ImageButton ID="ImageButton4" runat="server" Height="19px" ImageUrl="~/images/yildiz.png" onclick="ImageButton2_Click" Width="20px"  style="position: relative; top: 13px; left:6px; float:left;  "    commandArgument='<%#Eval("sdasdas") + ","+Eval("fafasfa") %>' /></div>         <div class="yildiz"><asp:ImageButton ID="ImageButton5" runat="server" Height="19px" ImageUrl="~/images/yildiz.png" onclick="ImageButton5_Click" Width="20px"  style="position: relative; top: 13px; left:8px; float:left;" commandArgument='<%#Eval("row[0].ToString()") + ","+Eval("row[1].ToString()") %>'/></div>         <div class="yildiz"><asp:ImageButton ID="ImageButton6" runat="server" Height="19px" ImageUrl="~/images/yildiz.png" onclick="ImageButton2_Click" Width="20px"  style="position: relative; top: 13px; left:10px ; float:left; " commandArgument='<%#Eval("row[0].ToString()") + ","+Eval("row[1].ToString()") %>' /></div>         <div class="yildiz"><asp:ImageButton ID="ImageButton3" runat="server" Height="19px"  ImageUrl="~/images/yildiz.png" onclick="ImageButton2_Click" Width="20px" style="position: relative; top:13px; left:12px ; float:left;" commandArgument='<%#Eval("row[0].ToString()") + ","+Eval("row[1].ToString()") %>' /></div>         <div class="yildiz"> <asp:ImageButton ID="ImageButton2" runat="server" Height="19px" ImageUrl="~/images/yildiz.png" onclick="ImageButton2_Click" Width="20px"  style="position: relative; top: 13px; left: 14px; float:left;" commandArgument='<%#Eval("row[0].ToString()") + ","+Eval("row[1].ToString()") %>' /></div>         <div class="oy-sil"><img src="images/oy-sil.png" width="11" height="13" style="position: relative; top: 30px; " /></div>     </div> </div> 

This is the code-behind:

protected void ImageButton2_Click(object sender, ImageClickEventArgs e) {     ImageButton objImage = (ImageButton)sender;      string[] commandArgs = objImage.CommandArgument.ToString().Split(new char[] { ',' });     string id = commandArgs[0];     string text = commandArgs[1];       //  string s= Imageid.UniqueID.ToString();     //this.baslik2.Text = s; } 
like image 628
leventkalay92 Avatar asked Mar 22 '12 13:03

leventkalay92


People also ask

How to pass multiple values in Command argument in ASP net c#?

Multiple values will be passed by concatenating multiple values using a Character separator such as Comma, Pipe, etc. and later inside the Button Click event, the values will be split and populated into an Array.

What is command argument in asp net c#?

The CommandArgument property complements the CommandName property by allowing you to provide any additional information about the command to perform. For example, you can set the CommandName property to Sort and set the CommandArgument property to Ascending to specify a command to sort in ascending order.


1 Answers

I checked your code and seems to be no problem at all. please make sure Image commandArgument getting value. check it first binding in label whether you are getting value.

However, here is sample which I'm using in my project

<asp:GridView ID="GridViewUserScraps" ItemStyle-VerticalAlign="Top" AutoGenerateColumns="False" Width="100%" runat="server" OnRowCommand="GridViews_RowCommand" >         <Columns>             <asp:TemplateField SortExpression="SendDate">                 <ItemTemplate>                 <asp:Button ID="btnPost" CssClass="submitButton" Text="Comment" runat="server" CommandName="Comment" CommandArgument='<%#Eval("ScrapId")+","+ Eval("UserId")%>' />                  </ItemTemplate>             </asp:TemplateField>         </Columns>     </asp:GridView> 

first bind the GridView.

public void GetData() {    //bind ur GridView    GridViewUserScraps.DataSource = dt;    GridViewUserScraps.DataBind(); }  protected void GridViews_RowCommand(object sender, GridViewCommandEventArgs e) {     if (e.CommandName == "Comment")     {         string[] commandArgs = e.CommandArgument.ToString().Split(new char[] { ',' });         string scrapid = commandArgs[0];         string uid = commandArgs[1];     } } 
like image 113
Ashwini Verma Avatar answered Sep 20 '22 10:09

Ashwini Verma