Solved

asp.net c# find label in gridview

Posted on 2009-05-13
48
9,339 Views
Last Modified: 2013-12-17
I am binding a gridview on the aspx file and am trying to get the value of a label in the code behind.
i'd like to put the value in a global variable so I can use it else where in the code page.


How do I go about it? See my code below.
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" 

                                                        CellPadding="4" DataKeyNames="PatientId" DataSourceID="SqlDataSource2" 

                                                        ForeColor="#333333" GridLines="None" Width="100%">

                                                        <RowStyle BackColor="#EFF3FB" />

                                                        <Columns>

                                                            <asp:BoundField DataField="PatientId" HeaderText="PatientId" 

                                                                InsertVisible="False" ReadOnly="True" SortExpression="PatientId" Visible="false" />

                                                            <asp:BoundField DataField="UserId" HeaderText="UserId" 

                                                                SortExpression="UserId" Visible="false" />

                                                        <asp:TemplateField HeaderText="First Name">

                                                            <ItemTemplate>

                                                            <asp:Label ID="lblFName" runat="server" Text='<%# Bind("patFName") %>'></asp:Label>

                                                            </ItemTemplate>

                                                        </asp:TemplateField>
 

Code Behind:

public partial class addrec: System.Web.UI.Page

{

    # region MemberDeclaratives

       public string fname = String.Empty;

    #endregion
 

protected void Page_Load(object sender, EventArgs e)

    {

      Label lbl = this.GridView1.FindControl("lblFName") as Label; //this yields a null value
 

    }
 

protected void btnAdd_Click(object sender, EventArgs e)

    {

     LoadData();      

  //send email

        EmailNotification();

}
 

protected void EmailNotification()

    {

      Label lbl = this.GridView1.FindControl("lblFName") as Label; //this yields a null value

//want to use the value in an email message.

msg.Body = "Hello, " + lbl.ToString();
 

}

Open in new window

0
Comment
Question by:fwstealer
  • 20
  • 10
  • 9
  • +2
48 Comments
 
LVL 39

Expert Comment

by:abel
ID: 24380887
It is not very useful to put the label into a global variable, because you never know beforehand how many labels you are going to get: it is dependent on the amount of rows.

For the same reason, using FindControl on the GridView will not yield the required results: the GridView will contain many such labels once it is loaded.

Instead, you should use the RowDateBound event, which occurs for each Row when the data is bound to that row. See example code:

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)

{

    Label lbl = e.Row.FindControl("lblFName") as Label;

    lbl.Text = "you are at row nr. " + e.Row.RowIndex;

}

Open in new window

0
 
LVL 6

Expert Comment

by:M3mph15
ID: 24380931
Hi,

I don't know wether the gridview would be showing the data in Page_Load() i agree with abel and use the RowDataBound
0
 

Author Comment

by:fwstealer
ID: 24380956
The gridview returns the row per a recordid. The user is supposed to select a name from a drop down. this then populates the gridview. the user completes a form and the form is sent to an email address.

so how do i use that to call the method: EmailNotification()?
0
 

Author Comment

by:fwstealer
ID: 24380996
Would this work?
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    Label lblfname = e.Row.FindControl("lblFName") as Label;
    Label lbllname = e.Row.FindControl("lblLName") as Label;
   
EmailNotification(lblfname, lbllname);
}

protected void EmailNotification(string fname, string lname)
{

}
0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24380999
The question for me here is where are you putting the button? Yes you would use rowdatabound to get at the label as a control and its subsequent properties, but that does nothing for you as far as taking action and sending an email based on the label's contents as it seems you want to do.

One idea would be to put a button in each row of the gridview along with the label. The button's value would be something like "Send Email". Now you would also use the CommandText of said button and Databind a value to that such as the label's text (you could bind gridview row index value, or whatever works for your purpose). This CommandText binding could be done inline in the html or using the rowdatabind process.

Now on the buttonclick you can evaluate the sender by converting it to a button and getting it's CommandText field. Viola....

Another way to go about this would be to make the label a link. Assign js to the link that calls postback passing in the value of the label. Or with a little js manipulation there are numerous possibilities.

dday
0
 

Author Comment

by:fwstealer
ID: 24381012
Actually, I need to take data from two gridviews and send the data in an email.

protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
    Label lblfname = e.Row.FindControl("lblFName") as Label;
    Label lbllname = e.Row.FindControl("lblLName") as Label;
}

protected void GridView2_RowDataBound(object sender, GridViewRowEventArgs e)
{
    Label lblspecname = e.Row.FindControl("lblFName") as Label;
    Label lblspecnumname = e.Row.FindControl("lblLName") as Label;
}


protected void EmailNotification()
{

msg.Body += fname + " " + lname;
msg.Body += specname + " " + specnumname;
}
0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24381041
So now you have the label during the binding process. Are you going to send email for every row? Or do you need to use that information within the context of some user interaction like a button press or ? It is my guess that here you want to have the user select a particular row, and use data from that row to send an email? Lay out a little further what you would like to do please, or maybe you are saying you solved your problem already?

dday
0
 

Author Comment

by:fwstealer
ID: 24381096
here is how it works:
page loads with 2 drop downs and 2 gridviews
1. ddl1 fname/lname - the user selects one and gridview1 is populated
2. ddl2 specname/specnumname - the user selects one and gridview2 is populated
3. the user types in a value for a textbox
4. the user checks a radio button
5. user clicks the submit button
6. EmailNotification() is fired and the user is redirected to a confirm page

0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24381243
Sorry to keep asking questions, but I need a bit more. You mentioned you needed the values from a label (or maybe two labels) to send the email. So the question is what information do you need to pass on when the user clicks the submit button? A label from a row that the user has interacted with? Some control value in grid1 and some other control value from grid2? Ideas are coming to me, but I gotta know what I'm trying to pass to the server for sending email.

dday
0
 

Author Comment

by:fwstealer
ID: 24381288
I just need to grab values from both gridviews, other form fields and send it all in one email. I wish this was possible.

protected void EmailNotification()
{

msg.Body += GridView1.FindControl("lblFName").ToString() + " " + GridView1.FindControl("lblLName").ToString() + "<br />";
msg.Body += GridView2.FindControl("lblspecname").ToString() + " " + GridView2.FindControl("lblspecnumname").ToString() + "<br />";

}
0
 

Author Comment

by:fwstealer
ID: 24381318
gridview1 -
<asp:TemplateField HeaderText="First Name">
                                                            <ItemTemplate>
                                                            <asp:Label ID="lblFName" runat="server" Text='<%# Bind("FName") %>'></asp:Label>
                                                            </ItemTemplate>
                                                        </asp:TemplateField>

is how I've set up the items that i need to get the values of.
0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24381391
*** "I wish this was possible." ***

Yes I understand, but it's not. For example there is (1) instance of lblFName for each row in your gridview. ASP renders that out in html by giving each label a uniqueID (ctl00_item00_lblFName, ctl00_item01_lblFName, etc). So when you look for lblFName it simply doesnt exist. What you need to know is the id of the label on the row you want.

So you have to be strategic about how to get that information. You might be able to tie into some gridview server side events, but I think I would leverage js here instead. What you are trying to do is not for the squeemish, but eminently do-able.

Before I try to get into that though. I notice that in your example all you want is the names and specnumname for your email. If this is the case then why not get those values from the drop downs you mentioned before instead of the gridviews?

If you need actual values from the gridview rows being interacted with then that is more involved.

You mentioned that the user types in a value for a textbox. Is that textbox in gridview1 on the row of the labelFName, or is that textbox standing alone outside the gridview? Same question for the checkbox where is it in relation to gridview1/gridview2? Do these controls even have relations with respective gridviews?

dday

0
 

Author Comment

by:fwstealer
ID: 24381431
Me too. No doubt - not for squeemish.
For each gridview there is only one row of data. There are other gridview values that I need to obtain - just didn't feel like typing those in as well, like address, phone, etc..

The textbox and checkbox are fortunately outside of the gridviews so I can handle getting that data. No relations with the gridviews.

This is a tough one for me.
0
 

Author Comment

by:fwstealer
ID: 24381457
another twist - there is even a 3rd gridview that may or may not be present - depends on a data value in the data that is populating gridview1.

so there is gridview1, gridview2 and gridview3 is based on a data element from gridview1. So i need to determine if gridview3 is present and use a field from it.

:)
0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24381509
Ok so I am going to try to give you an easy out (relatively speaking).

If your gridviews each only have one row, and you want to get ahold of controls inside of that row then on your button_click event you can simply get the controls from the gridview thusly:

string test = gv.Rows[0].Cells[0].FindControl("btnInside").Text
//substitute "btnInside" for id of your control.

if you know the index position of your controls you could also find then that way:

gv.Rows[0].Cells[0].Controls[0] //this would give you the first control Controls[1] would give you next etc

That should make it much easier to manage.

dday
 
0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24381523
For the 3rd gridview that is easy enough to incorporate

if(gridview3.rows.count > 0)
{ //do stuff }

dday
0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24381551
Lastly, I should have mentioned that in your gridview that you posted above you will have to manipulate the cells index to get at the control you want OR you can even make that shorter and skip the cells altogether:

string test = gv.Rows[0].Cells[2].FindControl("btnInside").Text

OR

string test = gv.Rows[0].FindControl("btnInside").Text

dday
0
 

Author Comment

by:fwstealer
ID: 24381594
       string test = GridView1.Rows[0].FindControl("lblFName").Text;
Is not valid.

        string test = GridView1.Rows[0].FindControl("lblFName");
Can't convert to string.

So if i place this code on the event button, how do I pass it to the email method?
protected void btnAdd_Click(object sender, EventArgs e)
    {
        string test = GridView1.Rows[0].FindControl("lblFName");

        //send email
        EmailNotification(test, etc...);
0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24381659
OK,

I tested that out, but I just used a project I had built here in vb that was already binding to a gridview. I converted the vb to c#, but stupid vb does implicit casting sometimes for me and c# will be mad if I missed that.

Just start by getting the control and seeing what you have. The debugger is your friend here. The reason the 2nd one didnt work looks like because you are trying to put a control into a string variable. Change that:

button test = GridView1.Rows[0].FindControl("lblFName");
string test2 = test.Text;

I know this works because I set it up and tested it. If you get an error examine it in the debugger and figure out what's off. Is a header row being caught as Row[0] and you need to use Row[1]? I dunno examine the rows property to see what you have there.

Anyway, once you get all the values you want you will have to change the signature of your email function to accept more arguments and pass them in, much like you have in your example to me.

Hope your making progress, good luck,

dday
0
 
LVL 10

Expert Comment

by:GeoffSutton
ID: 24383740
Is there any reason why you cannot use GridView1.OnRowDataBound() ?  That will give you each row as it is bound, and the data going into that row.  Then you can use if(e.Row.RowType==RowType.Header) or whatever Rowtype you are searching for.  You can easily extract the data being posted here, or can even use ((Label)e.Row.FindControl("lblFName")).Value to get the data you are looking for.
Geoff
0
 

Author Comment

by:fwstealer
ID: 24383779
       Button test = GridView1.Rows[0].FindControl("lblFName") as Button; // null value
        String test2 = test.Text.ToString(); //Object reference not set to an instance of an object.

switched to use rows[1] and it bombed.
0
 
LVL 10

Expert Comment

by:GeoffSutton
ID: 24383853
Oops... sorry - Had only read the first part of the question, then the last comment.  If I understand correcly, you want to A) select a name form a dropdown list, B) Fill the grid based on the name selected, C) Send an email based on the contents in the grid?  
When you fill the grid you are looking to edit the values in the grid, correct?  Is the grid being filled with individual data based on the name being selected, then the email being sent as soon as the name is chosen?
Geoff
0
 

Author Comment

by:fwstealer
ID: 24383865
this seems to work
        Label test = GridView1.Rows[0].FindControl("lblFName") as Label;
        string test2 = test.Text.ToString();
        EmailNotification(test2);

would like to do this to shorten it but it failed
 Label test = GridView1.Rows[0].FindControl("lblFName") as Label;
        //string test2 = test.Text.ToString();
        EmailNotification(test);
cannot convert from 'System.Web.UI.WebControls.Label' to 'string'

I'm not sure how to use the example geoff; i converted all the data elements to labels.
0
How your wiki can always stay up-to-date

Quip doubles as a “living” wiki and a project management tool that evolves with your organization. As you finish projects in Quip, the work remains, easily accessible to all team members, new and old.
- Increase transparency
- Onboard new hires faster
- Access from mobile/offline

 

Author Comment

by:fwstealer
ID: 24383876
the grids are being filled with individual data based on the name being selected, then the email being sent
yes
0
 
LVL 10

Expert Comment

by:GeoffSutton
ID: 24383888
EmailNotification((Label)GridView1.Rows[0].FindControl("lblFName")).Text);
This would work,
Geoff
0
 

Author Comment

by:fwstealer
ID: 24383900
So I'll have to do this for every data element I need

protected void btnAdd_Click(object sender, EventArgs e)
    {
        Label gpfname = GridView1.Rows[0].FindControl("lblFName") as Label;
        Label gplname = GridView1.Rows[0].FindControl("lblLName") as Label;

        string pfname = gpfname.Text.ToString();
        string plname = gplname.Text.ToString();

EmailNotification(pfname, plname);
}

protected void EmailNotification(string pfname, string plname)
{
//send mail
}
0
 
LVL 10

Expert Comment

by:GeoffSutton
ID: 24383903
Oops... Missing a bracket...
EmailNotification(((Label)GridView1.Rows[0].FindControl("lblFName")).Text);
0
 

Author Comment

by:fwstealer
ID: 24383927
       EmailNotification((Label)GridView1.Rows[0].FindControl("lblFName")).Text);
invalid expression term and I'll need to do that for each data element?
0
 
LVL 39

Expert Comment

by:abel
ID: 24383941
> cannot convert from 'System.Web.UI.WebControls.Label' to 'string'

you can use what's above in GeoffSutton post.

Are you trying to send an email for every single row in the grid? There may be an easier way to do that. In fact, unless you truly only want the very first row (check whether it is null, your code will raise nullpointerexceptions whenever the data is empty), you should really resort to another technique.
0
 
LVL 39

Expert Comment

by:abel
ID: 24383961
> invalid expression term and I'll need to do that for each data element?

hopefully not. If you want to do this for each data element, a much easier way is to use the earlier mentioned OnRowDataBound. Every row will pass by there, the data is set, the text of the label is set and you can send your mail with two lines of code.

If, for whatever reason, you do not want to do that, you can use other techniques to get an array of all labels that go by that name. Alternatively, consider passing in the DataGridViewRow object to the EmailNotification, that will make your code much cleaner and easier to read.
0
 
LVL 10

Expert Comment

by:GeoffSutton
ID: 24384006
Since emailNotification is taking 2 arguments, you would need to use:
EmalNotification(((Label)GridView1.Rows[0].FindControl("lblFName)).Text,((Label)GridView1.Rows[0].FindControl("lblLName")).Text)
If you want to use that on each row, using the button click, use
ForEach(GridViewRow row in GridView1.Rows){

  If(row.RowType==RowType.DataRow){
   EmailNotification((Label)row.FindControl("lblFName")).Text,row.FindControl("lblLName").text);
  }
}
0
 
LVL 39

Expert Comment

by:abel
ID: 24384029
So, in short, and while keeping the current approach (you'll change it someday, I'm sure) change the EmailNotification as follows:

// inside your btnAdd_code click, getting all the rows as follows:

protected void btnAdd_Click(object sender, EventArgs e)

{

    foreach(GridViewRow row in GridView1.Rows)

    {

        EmailNotification(row);

    }

}
 

public void EmailNotification(GridViewRow row)

{

    string pfname = "";

    string plname = "";

    Label gpfname = (Label) row.FindControl("lblFName");

    Label gplname = (Label) row.FindControl("lblLName")
 

    if(gpfname != null && gplname != null)

    {

        pfname = gpfname.Text;

        plname = gplname.Text;

    }

    // put your original mail notification code here

}

Open in new window

0
 
LVL 10

Expert Comment

by:GeoffSutton
ID: 24384030
Depend on the CTRL+Space to give you the exact terms to use.  This is just typed in from member, so copying this into your code isn't going to be accurate:)  Also you shouldn't need to us .ToString() since the .Text is already a string value.
Geoff
 
0
 

Author Comment

by:fwstealer
ID: 24384204
okay this seems to work:
 
protected void btnAdd_Click(object sender, EventArgs e)
    {
        EmailNotification(((Label)GridView1.Rows[0].FindControl("lblFName")).Text,
            ((Label)GridView1.Rows[0].FindControl("lblLName")).Text,
            ((Label)GridView1.Rows[0].FindControl("lblAddress1")).Text,
            ((Label)GridView1.Rows[0].FindControl("lblCity")).Text,
            ((Label)GridView1.Rows[0].FindControl("lblState")).Text,
            ((Label)GridView1.Rows[0].FindControl("lblZip")).Text,
            ((Label)GridView2.Rows[0].FindControl("lbldocFName")).Text,
            ((Label)GridView2.Rows[0].FindControl("lbldocLName")).Text,
            ((Label)GridView2.Rows[0].FindControl("lblAddress1")).Text,
            ((Label)GridView2.Rows[0].FindControl("lblAddress2")).Text,
            ((Label)GridView2.Rows[0].FindControl("lblCity")).Text,
            ((Label)GridView2.Rows[0].FindControl("lblState")).Text,
            ((Label)GridView2.Rows[0].FindControl("lblZip")).Text,
            ((Label)GridView2.Rows[0].FindControl("lblOfficeFax")).Text,
           ((Label)GridView3.Rows[0].FindControl("lblPIC")).Text,
          ((Label)GridView3.Rows[0].FindControl("lblPICName")).Text,
          ((Label)GridView4.Rows[0].FindControl("lblSIC")).Text,
         ((Label)GridView4.Rows[0].FindControl("lblSICName")).Text);
}

 protected void EmailNotification(string pfname, string plname, etc....)
{

}

However, my biggest issue is below:
Gridview1 is always present
Gridview2 is always present

Gridview3 may or may not be present
Gridview4 may or may not be present

So how do I handle that issue?
0
 
LVL 39

Expert Comment

by:abel
ID: 24384242
> okay this seems to work:

can you take a moment and check my code? It may help you a lot. The code you are posting is terrible to maintain. It is your choice, of course, but anyway. And why only Rows[0]? Were we mistaken that you wanted all rows, like you said earlier?

It is quite awkward to send so many parameters to a function. In object oriented programming, you make your life easier if you send objects to functions. In this case, sending only the row to EmailNotification will make your code much cleaner.

Whether GridView3 or 4 are not present is not important. They will be accessible regardless whether they are hidden or not. Change my approach slightly to deal with data that is not present for a certain row.

In case you want to know regardless:

if (GridView3.Visible)
{
   ... your code ..
0
 

Author Comment

by:fwstealer
ID: 24384397
abel,

the last bit of code worked; however, how do i account if gridview 3 and 4 are not present?
0
 

Author Comment

by:fwstealer
ID: 24384421
when i mention that gridview 3 and 4 might not be present it means that they have 0 rows per the id related from the 1st drop down.

so ddl fname, lname id1
gridview1 is populated based on id1
gridview3 may be populated if there is a row of data linked to id1
same for gridview 4

also, how do i send over multiple gridviews with
foreach(GridViewRow row in GridView1.Rows)
    {
        EmailNotification(row);
    }
0
 
LVL 39

Expert Comment

by:abel
ID: 24384554
The nice thing about the for-each is that it automatically won't run at all if the Rows are empty. That means,in your situation, if you want to call EmailNotification for each row, that you can do the following (don't misinterpret the "new" keyword, it is only needed for the array, it does not create new gridviews):



foreach(GridView gv in new GridView[] {GridView1, GridView2, GridView3, GridView4})

{

    foreach (GridViewRow row in gv.Rows)

    {

        EmailNotification(row);

    }

}

Open in new window

0
 
LVL 39

Expert Comment

by:abel
ID: 24384562
So, in other words, the above code will run through all Rows of all your gridviews, whether those gridviews have rows or not.
0
 
LVL 10

Accepted Solution

by:
GeoffSutton earned 250 total points
ID: 24384575
abel:  Don't forget to include checking row.RowType.  Otherwise you will be getting errors from the header rows.
Geoff
0
 
LVL 39

Assisted Solution

by:abel
abel earned 250 total points
ID: 24384601
thanks for pointing that out. GeoffSutton. You can do so in several ways (i.e., using LINQ for one), but let's keep it simple:

foreach(GridView gv in new GridView[] {GridView1, GridView2, GridView3, GridView4})

{

    foreach (GridViewRow row in gv.Rows)

    {

        if (row.RowType == DataControlRowType.DataRow)

        {

            EmailNotification(row);

        }

    }

}

Open in new window

0
 

Author Comment

by:fwstealer
ID: 24384749
so much for my mess - what i was thinking

protected void btnAdd_Click(object sender, EventArgs e)
    {

if (GridView1.Visible = true && GridView2.Visible = true)
        {
            //gridview1 and gridview2 are visible with data

            if (GridView3.Visible = true && GridView4.Visible = true)
            {
            //gridview3 and 4 are visible with data
      //send over gridview1,2,3,4
            }
            else
            {
                //gridview3 is visible with data and gridview4 is not visible
      //send over gridview1,2,3
            }
        }
0
 

Author Comment

by:fwstealer
ID: 24384943
protected void btnAdd_Click(object sender, EventArgs e)
    {
foreach (GridView gv in new GridView[] { GridView1, GridView2, GridView3, GridView4 })
        {
            foreach (GridViewRow row in gv.Rows)
            {
                if (row.RowType == DataControlRowType.DataRow)
                {
                    EmailNotification(row);
                }
            }
        }


}

protected void EmailNotification(GridViewRow row)
    {
        string pfname = "";
        string plname = "";
        string dfname = "";
        string picname = "";
        string sicname = "";
        Label gpfname = (Label)row.FindControl("lblpFName"); //gridview1
        Label gplname = (Label)row.FindControl("lblpLName"); //gridview1
        Label gdfname = (Label)row.FindControl("lbldFName"); //gridview2
        Label gpicname = (Label)row.FindControl("lblpicName"); //gridview3
        Label gsicname = (Label)row.FindControl("lblsicName"); //gridview4

           pfname = gpfname.Text;
            plname = gplname.Text;
            dfname = gdfname.Text;
            picname = gpicname.Text;
            sicname = gsicname.Text;


It is only picking up data from gridview1 and not the other gridviews. yes, gridview2, 3 and 4 have data.
0
 
LVL 39

Expert Comment

by:abel
ID: 24386540
> so much for my mess - what i was thinking
you were mixing "=" and "==" in that post. Anyway, getting boolean logic right is not easy...

> It is only picking up data from gridview1 and not the other gridviews. yes, gridview2, 3 and 4 have data
sounds like we're getting somewhere. Can you try the following and show me what the Immediate window shows (you may need to add a "using System.Diagnostics;" on top of your class)?

foreach(GridView gv in new GridView[] {GridView1, GridView2, GridView3, GridView4})

{

    Debug.WriteLine(gv.ID + " has " + gv.Rows.Count + " rows";

    foreach (GridViewRow row in gv.Rows)

    {

        if (row.RowType == DataControlRowType.DataRow)

        {

            EmailNotification(row);

        }

    }

}

Open in new window

0
 
LVL 20

Expert Comment

by:ddayx10
ID: 24390786
whew seems like you've been busy while I was away....but making progress, cool

dday
0
 
LVL 39

Expert Comment

by:abel
ID: 24391139
lol, different timezones. bedtime for me, you may take over :)
0
 

Author Comment

by:fwstealer
ID: 24402973
I'll get back to this shortly; thanks for helping
0

Featured Post

6 Surprising Benefits of Threat Intelligence

All sorts of threat intelligence is available on the web. Intelligence you can learn from, and use to anticipate and prepare for future attacks.

Join & Write a Comment

Suggested Solutions

Wouldn’t it be nice if you could test whether an element is contained in an array by using a Contains method just like the one available on List objects? Wouldn’t it be good if you could write code like this? (CODE) In .NET 3.5, this is possible…
Real-time is more about the business, not the technology. In day-to-day life, to make real-time decisions like buying or investing, business needs the latest information(e.g. Gold Rate/Stock Rate). Unlike traditional days, you need not wait for a fe…
Sending a Secure fax is easy with eFax Corporate (http://www.enterprise.efax.com). First, Just open a new email message.  In the To field, type your recipient's fax number @efaxsend.com. You can even send a secure international fax — just include t…
Polish reports in Access so they look terrific. Take yourself to another level. Equations, Back Color, Alternate Back Color. Write easy VBA Code. Tighten space to use less pages. Launch report from a menu, considering criteria only when it is filled…

747 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

8 Experts available now in Live!

Get 1:1 Help Now