Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsFree MagazinesWhite PapersSubmit Content
Discussion GroupsASP.NETWindows FormsLanguages.NET FrameworkVisual Studio.NET
Articles.NET FrameworkASP.NETToolsWindows Forms
.NET DirectoryOpen Source ProjectsUser GroupsWeb Resources
Related Topics
Visual Basic 6SQL ServerMS AccessOther DB ProductsMS Server ProductsMore Topics ...

.NET Forum / .NET Framework / ADO.NET / August 2007

Tip: Looking for answers? Try searching our database.

Problem with ImageButton.OnClientClick when DataBinding

Thread view: 
Enable EMail Alerts  Start New Thread
Thread rating: 
Nathan Sokalski - 31 Jul 2007 02:07 GMT
I have the following tag in one of my DataList's ItemTemplates:

<asp:ImageButton ID="btnViewQuestion" runat="server" BorderWidth="0"
ImageUrl="images/qmark.gif" Height="27px" Width="26px"
OnClientClick="window.open(<%#
DataBinder.Eval(Container.DataItem,"questionid","'viewquestion.aspx?questionid={0}'")
%>,'question','scrollbars=yes,width=630,height=480,location=no,menubar=no,status=no,toolbar=no');"/>

As you can see, my goal is to use the value from the DataBinding Expression
as the first parameter of a JavaScript window.open() method in the
OnClientClick property of an ImageButton. However, when I run the
application using this, I recieve the following error:

Server Error in '/' Application.
--------------------------------------------------------------------------------

Parser Error
Description: An error occurred during the parsing of a resource required to
service this request. Please review the following specific parse error
details and modify your source file appropriately.

Parser Error Message: The server tag is not well formed.

I tried to be careful using the single and double quotes, but I think
everything is correct. Did I do something wrong in this server tag? All my
other DataBinding Expressions work fine when I remove this tag, and the
error says the problem is in this line, so what's the problem? Thanks.
Signature

Nathan Sokalski
njsokalski@hotmail.com
http://www.nathansokalski.com/

chenhong - 31 Jul 2007 05:43 GMT
OnClientClick isn't a bindable property.
you should build OnClientClick string in ImageButton's load event.
Hope this will help.

"Nathan Sokalski" <njsokalski@hotmail.com> дÈëÏûÏ¢ÐÂÎÅ:uJh2l8w0HHA.4712@TK2MSFTNGP04.phx.gbl...
>I have the following tag in one of my DataList's ItemTemplates:
>
[quoted text clipped - 23 lines]
> other DataBinding Expressions work fine when I remove this tag, and the
> error says the problem is in this line, so what's the problem? Thanks.
Teemu Keiski - 01 Aug 2007 18:42 GMT
I agree that its most flexible to do in code, but OnClientClixk can be
databound

 <asp:DataGrid ID="DataGrid1" runat="server" GridLines="Both"
BorderWidth="0" AutoGenerateColumns="false">
           <Columns>
               <asp:TemplateColumn>
                   <ItemTemplate>
                       <asp:Button ID="Button1" runat="server"
OnClientClick='<%# "alert(""" & Cstr(Container.DataItem) & """);return
false;" %>' />
                   </ItemTemplate>
               </asp:TemplateColumn>
           </Columns>
       </asp:DataGrid>

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Handles Me.Load
       Dim ints As New List(Of Integer)
       ints.Add(1)
       ints.Add(2)
       ints.Add(3)

       DataGrid1.DataSource = ints
       DataGrid1.DataBind()
   End Sub

This would alert the integer value on Button click

Signature

Teemu Keiski
AspInsider, ASP.NET MVP
http://blogs.aspadvice.com/joteke
http://teemukeiski.net

> OnClientClick isn't a bindable property.
> you should build OnClientClick string in ImageButton's load event.
[quoted text clipped - 30 lines]
>> the error says the problem is in this line, so what's the problem?
>> Thanks.
Teemu Keiski - 01 Aug 2007 18:44 GMT
To add, the trick is that the databinding expression should span the entire
property e.g "cover" it. That way it works. However, complex kind of script
is best to build in code. With a helper function for example.

Signature

Teemu Keiski
AspInsider, ASP.NET MVP
http://blogs.aspadvice.com/joteke
http://teemukeiski.net

> OnClientClick isn't a bindable property.
> you should build OnClientClick string in ImageButton's load event.
[quoted text clipped - 30 lines]
>> the error says the problem is in this line, so what's the problem?
>> Thanks.

Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.