Click here to Skip to main content
15,921,250 members
Please Sign up or sign in to vote.
3.00/5 (1 vote)
See more:
In a Gridview i want to pass 2 paremeters :
PostGroupID and PostGroup_cLanguageID
in Template field which contains ImageButton.
i dont know how pass this 2 values in PostBackUrl of ImageButton?

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDataSPostGroup"
BackColor="White" BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px"
CellPadding="4" DataKeyNames="PostGroupID" ForeColor="Black" GridLines="Vertical"
Width="100%">
 
<Columns>
                            
    <asp:BoundField DataField="PostGroupCode" HeaderText="کد گروه"         SortExpression="PostGroupCode" />
     <asp:BoundField DataField="ex" HeaderText="مسیر گروه" ReadOnly="True" SortExpression="ex" />
     <asp:TemplateField HeaderText="ساخت زیر گروه">
          <ItemTemplate>
             <asp:ImageButton ID="ImageButton2" runat="server" ImageUrl="~/Post/Images/subItem.gif"
             ToolTip="ساخت زیر گروه" Width="16px" PostBackUrl='<%# Eval("PostGroupID", "~/Post/PostGroups.aspx?PostGroupID={0} , PostGroup_cLanguageID={1}") %>' />
          </ItemTemplate>
     </asp:TemplateField>
 </Columns>
                      
</asp:GridView>
Posted

You can use a method in your code behind to generate every URL based on your parameters. Here is a sample:
XML
<asp:TemplateField HeaderText="Image">
    <ItemTemplate>
        <asp:ImageButton ID="ImageButton1" runat="server" ImageUrl="~/RaidLogo.ico" PostBackUrl='<%# GetUrl( Eval("TableSeq"), Eval("StartMounth")) %>' />
    </ItemTemplate>
</asp:TemplateField>


Code behind:
C#
public string GetUrl(object TableSeq, object StartDate)
       {
           return string.Format("Test.aspx?TableSeq={0}&StartDate={1}", TableSeq.ToString(), StartDate.ToString());
       }


Cheers
 
Share this answer
 
You can pass these parameters as command argument..

In code file

C#
private void GridAddressCommandEvent(object sender, GridViewCommandEventArgs e)
     {
         
             switch (e.CommandName)
             {
                 case "ShowDetails":
                     {
                         _objSession["OrderID"] = e.CommandArgument.ToString();
                         System.Web.HttpContext.Current.Response.Redirect("OrderForm.aspx?orerid=_objSession["OrderID"]", true);
                         
                         
                     }
                     break;

             }
         }

IN design you can use this code

XML
<asp:TemplateField HeaderText="OrderId">
                                                              <ItemStyle HorizontalAlign="Center" />
                                                              <ItemTemplate>
                                                                  <asp:LinkButton ID="lnkbtnOrder" Text='<%# Eval("OrderId") %>'   CausesValidation="false" ToolTip="Delete"
                                                                      CommandName="ShowDetails"
                                                                      CommandArgument='<%# Eval("OrderId") %>' runat="server" />

                                                              </ItemTemplate>
                                                          </asp:TemplateField>

In this i am passing one parameter.But with using comma you can pass 2 parameters. and in code behind you can seprate the string.
 
Share this answer
 
v2
Use this code:


HTML
PostBackUrl='<%#string.Format("Post/PostGroups.aspx?PostGroupID={0}&PostGroup_cLanguageID={1}",Eval("PostGroupID"),Eval("PostGroup_cLanguageID")) %>'
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900