Solved

onclick how to run my own method in c sharp

Posted on 2006-06-29
21
308 Views
Last Modified: 2008-01-09
Hello this code runs a javascrpt with name saveSelection.
I want it to run a c# method. How to do that?

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            CheckBox Velg = (CheckBox)e.Row.FindControl("Velg");
            Velg.Attributes.Add("onclick", "saveSelection(this,'" + e.Row.Cells[0].Text + "');");
        }
    }
0
Comment
Question by:m-jansen
  • 14
  • 7
21 Comments
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011541
Have you heard anything about AJAX (AjaxPro)?

Bob
0
 

Author Comment

by:m-jansen
ID: 17011568
Very little. Think I've heard the name mentioned some place.
0
 

Author Comment

by:m-jansen
ID: 17011592
Why do you ask?
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011753
AjaxPro is a library that makes it possible to call server-side methods from client-side Javascript.  We use it here to get a simplify generating DataSet objects, since C#/VB.NET is so much easier.

Bob
0
 

Author Comment

by:m-jansen
ID: 17011829
ohh ok. So I must use the evening to learn Ajax... ok.ok :)
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011858
What is saveSelection doing?

Bob
0
 

Author Comment

by:m-jansen
ID: 17011896
right now it's doing nothing more that to view some info from a row in gridview. I wanted to use a c# method instead becuase it's easier to find what I need there.

   function saveSelection(obj, idxId)
    {        
        alert("obj: "+obj + " idexId: " + idxId);
    }
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17011970
What method do you need to call?  One possible method is to call the method, get the result, place the result into a hidden <input> element and then extract the result from the Javascript side.

Bob
0
 

Author Comment

by:m-jansen
ID: 17011980
But if it can be done by useing javascript method i would be glad too.... or i'll start to learn ajax
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17012002
So, which C# method are you looking to call?

Bob
0
What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

 

Author Comment

by:m-jansen
ID: 17012049
going to call all kinds of methods I think.

convert this:
Velg.Attributes.Add("onclick", "saveSelection(this,'" + e.Row.Cells[0].Text + "');");

to work with c# methods

like this
Velg.Attributes.Add("onclick", "mycsharpmethod(e)");

but I get error: e is undefined
0
 

Author Comment

by:m-jansen
ID: 17012077
I must make GridViewRowEventArgs e protected and available for both my asp script and class file, but that's not a good solution I guess.
0
 

Author Comment

by:m-jansen
ID: 17012123
I mean like this....
Velg.Attributes.Add("onclick", "mycsharpmethod('" + e + "');");
0
 

Author Comment

by:m-jansen
ID: 17012172
or maybe this like this....
Velg.Attributes.Add("onclick", "'" + list.Add(21) + "'");
0
 

Author Comment

by:m-jansen
ID: 17012289
I've installed AjaxPro.2.dll in project now. Feel free to tell me how do this with ajax.
0
 

Author Comment

by:m-jansen
ID: 17012448
   protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            CheckBox Velg = (CheckBox)e.Row.FindControl("Velg");
            Velg.Attributes.Add("onclick", ""+ list.Add(32) +"");
        }
    }

This compiles and run without exeptions, but it does not add 32 to my array list. Why not?
0
 
LVL 96

Accepted Solution

by:
Bob Learned earned 125 total points
ID: 17012966
1) Add a reference to AjaxPro.dll to the project

2) Add using AjaxPro;

3) Add the [AjaxPro.AjaxMethod()] attribute to the method that you need to call

4) Register the class that you need to access:

     Utility.RegisterTypeForAjax(typeof(DataAccessLayer));

5) Here is an example in a Javascript function to call the method:

   DataAccessLayer.ViewResults(QLNAME, QLFIELDS, QLFILTER, QLSORT, mdbExportResultCallback);

6) Here are a few lines from the call back function:

   function mdbExportResultCallback(res)
   {
       writeLine("Received data from the server, importing into Access database.");
            
      if (res.value.Tables[0].Columns[0].Name == "Error")
      {
          alert(res.value.Tables[0].Rows[0][res.value.Tables[0].Columns[0].Name]);
          return;
      }

7) You can see from the Javascript code, that you have the same properties as a DataSet/DataTable (it's like magic!!!).

Bob
0
 

Author Comment

by:m-jansen
ID: 17018068
well, thanks. That really learned me alot. But My question is still unsolved.
0
 
LVL 96

Expert Comment

by:Bob Learned
ID: 17030472
Tell me, my friend, where you are still having a problem, and how I can help.

Bob
0
 

Author Comment

by:m-jansen
ID: 17030536
To be honest I installed Atlas instead. That was better to use with my VS2005. But my problem is now solved. I didn’t need to use javascript directly. I don’t remember right now what that solved it, but Atlas did it a lot easier for me to use Ajax. So since you directed me that way I think your answer posted 06/29/2006 09:00PM BST can be considered as accepted.
0
 

Author Comment

by:m-jansen
ID: 17030556
Thanks for all help
0

Featured Post

What Should I Do With This Threat Intelligence?

Are you wondering if you actually need threat intelligence? The answer is yes. We explain the basics for creating useful threat intelligence.

Join & Write a Comment

Suggested Solutions

I have developed many web applications with asp & asp.net and to add and use a dropdownlist was always a very simple task, but with the new asp.net, setting the value is a bit tricky and its not similar to the old traditional method. So in this a…
International Data Corporation (IDC) prognosticates that before the current the year gets over disbursing on IT framework products to be sent in cloud environs will be $37.1B.
Access reports are powerful and flexible. Learn how to create a query and then a grouped report using the wizard. Modify the report design after the wizard is done to make it look better. There will be another video to explain how to put the final p…
This video demonstrates how to create an example email signature rule for a department in a company using CodeTwo Exchange Rules. The signature will be inserted beneath users' latest emails in conversations and will be displayed in users' Sent Items…

757 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

23 Experts available now in Live!

Get 1:1 Help Now