Искате ли да обвържете низ на заявка в postbackurl на imagebutton в gridview?

когато се опитвам да свържа '<%#Eval("EntryID") %>' с postbackurl на ImageButton като

<asp:ImageButton ID="ibtnEdit" runat="server" CommandName="Edit" CommandArgument='<%#DataBinder.Eval(Container.DataItem,"SystemEmailID")%>'
  ImageUrl="~/Images/edit-list.gif" PostBackUrl="~/Edit_SyatemEmails.aspx?blogentry=edit&id=<%#DataBinder.Eval(Container.DataItem,"SystemEmailID")%>"/>

it's failed, then i updated the code to

 <asp:ImageButton ID="ibtnBlogEntryEdit" PostBackUrl='"~/admin/BlogEntry.aspx?blogentry=edit&entryid=" & <%# Eval("EntryID") %>' SkinID="edit" runat="server" />

 well,the above code has pass the debugging,but failed to databind to the postbackurl,the result as  

http://localhost/dovoshow/"~/admin/BlogEntry.aspx?blogentry=edit&entryid="%20&%20<%#%20Eval("EntryID")%20%>

so,anyonw know how to solve it ,help me  thanks 

person sikender    schedule 17.03.2010    source източник
comment
Можете ли да покажете код, където правите databind?   -  person Andrew Bezzub    schedule 17.03.2010
comment
databind при codebehind при събитие за зареждане на страница чрез създаване на функция.   -  person sikender    schedule 17.03.2010


Отговори (2)


Трябва да е като...

PostBackUrl='<%# Eval("SystemEmailID", "Edit_SyatemEmails.aspx?id={0}"
 + "&blogentry=" + Request.QueryString["edit"]) %>'
person Muhammad Akhtar    schedule 17.03.2010

Бих ви предложил да го направите в кода отзад. При събитие GridView RowCreated:

protected void GridView_OnRowCreated(Object sender, GridViewRowEventArgs e)
{
    if(e.Row.RowType == DataControlRowType.DataRow)
    {
      (e.Row.FindControl("ibtnEdit") as ImageButton). PostBackUrl = "~/Edit_SyatemEmails.aspx?blogentry=edit&id=" + DataBinder.Eval(e.Row.DataItem, "SystemEmailID"))
    }
}
person heisthedon    schedule 17.03.2010