Solved

sqldatasource control doubt

Posted on 2008-10-31
4
279 Views
Last Modified: 2013-11-07
Is it possible .. to get gridview cell value in the querybuilder of sqldatasource control.

My issue is . am using a gridview, in that there r three columns .
namely
id,name,quantity
where as for name field am  using dropdown list,
My Criteria...
1.am populating name  from db in dropdown list using sqldatasource ctrl . which is too ec . But wat really not happening is . i want to bind dropdown according to  id field index value in gridviw.. in otherwords I want to populate by using the gridview cell of 0 value ...is it possible..to in query builder. . ??


For eg ...(this is just for understanding like this...).
select name from table where id= row.Cells(0).Text) ...??

.can v get index value of gridview in querybuilder in sqldatasource ctrl....????

if its not possible y...???Plz suggest ....
0
Comment
Question by:Rajar Ahmed
  • 2
4 Comments
 
LVL 13

Accepted Solution

by:
SameerJagdale earned 500 total points
Comment Utility
i think you need to create a parameterized query. have a look at the article below:
http://www.asp.net/Learn/data-access/tutorial-48-vb.aspx
i suggest you can have a hidden field that will hold the cell value and provide this hidden field as a control to your parameterized query.. have a look at the article and it will make sense to you.
0
 
LVL 10

Expert Comment

by:jinn_hnnl
Comment Utility
You can do it in several way, but I recommend to use TemplateField which you have free control of what happens to your gridview and how you want to bind/display it.

<asp:GridView ..>
..
<asp:TemplateField HeaderText="Name">
                <ItemTemplate>
                       <asp:DropDownList ID="ddlName" runat="server" />
                </ItemTemplate>
 </asp:TemplateField>
</asp:GridView>

The next the step is: in your code behind, you populate this Dropdownlist upon the ID, the best place to do that is in RowDataBound. Look at the code

hope this gives you the idea

JINN





  protected void dgUserPasswords_ItemDataBound(object sender, DataGridItemEventArgs e)

{

	// Check if the current row contains items; if it's a header or footer row that will throw an error

	if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)

	{

		//get the ID

		string id = DataBinder.Eval(e.Item.DataItem, "ID").ToString();

		

		//find the current dropdown list:

		DropDownList ddlName = e.Item.FindControl("ddlName");

		

		//NOW you have the current ID and the dropdownlist -> populate the dllName dropdownlist 

		PopulateDropDownListNameByID(id, ddlName);

	}

}
 

private void PopulateDropDownListNameByID(string ID, DropDownList ddlname)

{

    //query and populate ddlName

}

Open in new window

0
 
LVL 26

Expert Comment

by:Anurag Thakur
Comment Utility
the best and the easiest of methods for doing an update will be by using the datakeynames property for the gridview
set you id as the datakeyname for your gridview and have a look at the following code sample

this sample code i have taken from the following link
http://asp.dotnetheaven.com/aspnet/doc/ctrlref/data/sqldatasource.aspx from C# GridView Updating section in it

hope it helps - ragi
<%@ Page Language="VB" %>

<html>

  <head runat="server">

    <title>Updating Data Using GridView</title>

  </head>

  <body>

    <form id="form1" runat="server">

      <asp:GridView ID="GridView1" AllowSorting="true" AllowPaging="true" Runat="server"

        DataSourceID="SqlDataSource1" AutoGenerateEditButton="true" DataKeyNames="au_id"

        AutoGenerateColumns="False">

        <Columns>

          <asp:BoundField ReadOnly="true" HeaderText="ID" DataField="au_id" SortExpression="au_id" />

          <asp:BoundField HeaderText="Last Name" DataField="au_lname" SortExpression="au_lname" />

          <asp:BoundField HeaderText="First Name" DataField="au_fname" SortExpression="au_fname" />

          <asp:BoundField HeaderText="Phone" DataField="phone" SortExpression="phone" />

          <asp:BoundField HeaderText="Address" DataField="address" SortExpression="address" />

          <asp:BoundField HeaderText="City" DataField="city" SortExpression="city" />

          <asp:BoundField HeaderText="State" DataField="state" SortExpression="state" />

          <asp:BoundField HeaderText="Zip Code" DataField="zip" SortExpression="zip" />

          <asp:CheckBoxField HeaderText="Contract" SortExpression="contract" DataField="contract" />

        </Columns>

      </asp:GridView>

      <asp:SqlDataSource ID="SqlDataSource1" Runat="server" SelectCommand="SELECT [au_id], [au_lname], [au_fname], [phone], [address], [city], [state], [zip], [contract] FROM [authors]"

        UpdateCommand="UPDATE [authors] SET [au_lname] = @au_lname, [au_fname] = @au_fname, [phone] = @phone, [address] = @address, [city] = @city, [state] = @state, [zip] = @zip, [contract] = @contract WHERE [au_id] = @au_id"

        ConnectionString="<%$ ConnectionStrings:Pubs %>" />

    </form>

  </body>

</html>

Open in new window

0
 
LVL 10

Expert Comment

by:jinn_hnnl
Comment Utility
This question has been answered:
http://www.experts-exchange.com/Programming/Languages/.NET/.NET_Framework_2.0/Q_23864235.html

meeran I think you should request to delete this question.

JINN
0

Featured Post

Threat Intelligence Starter Resources

Integrating threat intelligence can be challenging, and not all companies are ready. These resources can help you build awareness and prepare for defense.

Join & Write a Comment

Suggested Solutions

More often than not, we developers are confronted with a need: a need to make some kind of magic happen via code. Whether it is for a client, for the boss, or for our own personal projects, the need must be satisfied. Most of the time, the Framework…
Today I had a very interesting conundrum that had to get solved quickly. Needless to say, it wasn't resolved quickly because when we needed it we were very rushed, but as soon as the conference call was over and I took a step back I saw the correct …
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…
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

762 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

14 Experts available now in Live!

Get 1:1 Help Now