مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

elham7074

عضویت از 1396/05/30

ذخیره ی سطر های گرید ویو یا استفاده از کلیک کردن در جودل

  • دوشنبه 30 مرداد 1396
  • 22:40
تشکر میکنم

با سلام

من سایتی درمورد رستوران با زیان asp.net  دارم مینویسم و تازه کار هم هستم.

میخام در قسمت منوی غذاها  وقتی روی دکمه ی افزودن کلیک کرد(منوی غذا ها را با اسفاده گرید ویو نمایش دادم)،ان سطر از گرید ویو را داخل جدولی در بانک اطلاعاتیم به همراه نام کاربری کاربر ذخیره کند.

این کار به چه شکل است؟ممنون میشم کدش را به زبان C# در اختیارم بگذارید.

پاسخ های این پرسش

تعداد پاسخ ها : 16 پاسخ
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • سه شنبه 31 مرداد 1396
  • 09:52

لطفا عنوان مناسبی برای تاپیک هاتون قرار دهید و متاسفانه از دفعه بعد حذف خواهند شد .

شما میتونید در رویداد RowCommand دکمه زده شده را کنترل کنید و کدهای ذخیره در بانک را بنویسید

برای دکمه در گرید یک CommandArgument بزارید که کد غذا هست و موقع ذخیره بدست بیارید و ذخیره کنید

کاربر سایت

elham7074

عضویت از 1396/05/30

  • سه شنبه 31 مرداد 1396
  • 22:15

با سلام،ممنون از پاسختون.ولی من چیزی متوجه نشدم.همانطور که عرض کردم میخام وقتی روی دکمه ی پلاس همانطور که تو عکس میبینید اطلاعات ان سطر از گرید ویو به همراه ایدی کاربر داخل جدول ذخیره کنم

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 1 شهریور 1396
  • 10:11
<asp:TemplateField>
  <ItemTemplate>
    <asp:Button ID="AddButton" runat="server" 
      CommandName="AddToCart" 
CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"
      Text="Add to Cart" />
  </ItemTemplate> 
</asp:TemplateField>

protected void GridView1_RowCommand(object sender, 
  GridViewCommandEventArgs e)
{
  if (e.CommandName == "AddToCart")
  {
    // Retrieve the row index stored in the 
    // CommandArgument property.
    int index = Convert.ToInt32(e.CommandArgument);

    // Retrieve the row that contains the button 
    // from the Rows collection.
    GridViewRow row = GridView1.Rows[index];

    // Add code here to add the item to the shopping cart.
  }

  }

کاربر سایت

elham7074

عضویت از 1396/05/30

  • چهارشنبه 1 شهریور 1396
  • 17:22

 

 protected void GridView1_RowCommand(object sender,
  GridViewCommandEventArgs e)
    {
        if (e.CommandName == "AddToCart")
        {
            string connectionString =
                System.Configuration.ConfigurationManager.ConnectionStrings["webdatabaseconnection"].ConnectionString;
            SqlConnection con = new SqlConnection(connectionString);
            
            // Retrieve the row index stored in the 
            // CommandArgument property.
            int index = Convert.ToInt32(e.CommandArgument);

            // Retrieve the row that contains the button 
            // from the Rows collection.
            GridViewRow row = GridView1.Rows[index];

            // Add code here to add the item to the shopping cart.

            string query = "insert into tbl_News(Title,Abstrac,Contents,Pic) values(@Title,@Abstrac,@Contents,@Pic)";
            SqlCommand cmd = new SqlCommand(query, con);
            cmd.Parameters.AddWithValue("@Title", row);
            cmd.Parameters.AddWithValue("@Abstrac", row);
            cmd.Parameters.AddWithValue("@Contents", row);
            cmd.Parameters.AddWithValue("@Pic", row);
            con.Open();
            if (cmd.ExecuteNonQuery() > 0)
            {
                Label5.Text = "succsssfully...";
            }

            con.Close();

        }

    }

با سلام وقتتون بخیر،ممنون که پاسخ میدید و همچنین عذر خواهی میکنم بابت اینکه انقدر سوال میپرسم.

ببینید طبق عرایضی که فرمودید اینطور کد نوشتم و نمیدونم به جای دو تا کامنت اولیتون چی باید بنویسم.

و اصلا اینطور نحوه ی insert  کردن درست هست؟

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 1 شهریور 1396
  • 18:52

بله درسته

شماره خط را بنویسید

منظورتون از کامنت کدام خطهاست ؟

کاربر سایت

elham7074

عضویت از 1396/05/30

  • چهارشنبه 1 شهریور 1396
  • 19:20

 منظورم از کامت خط شماره ی (6و7)و(10و11) هست      
 که نمیدونم باید تو این قسمت ها که عرض کردید چه بنویسم.
چون الان با این قطعه کدی که نوشتم اصلا اطلاعاتی درج نمیکنه
البته خطایی هم ندارد
کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 1 شهریور 1396
  • 19:37

چیزی نباید بنویسید

اونها توضیح هستند

کاربر سایت

elham7074

عضویت از 1396/05/30

  • چهارشنبه 1 شهریور 1396
  • 19:40

اخه هیچ خروجی ندارم.(error هم ندارم)فکر کردم  خط کد اضافه تری هست که باید بنویسم.

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • چهارشنبه 1 شهریور 1396
  • 19:49

نمونه زیر رو ببینید

در اون استفاده شده

ارسال مقادیر GridView به صفحه دیگر و به روزرسانی رکوردها

کاربر سایت

elham7074

عضویت از 1396/05/30

  • پنجشنبه 2 شهریور 1396
  • 17:41

با سلام.ممنون بابت راهنمای هاتون.

الان تنها مشکلی که دارم اینه که اطلاعات خالی در جدول وارد میکند.یعنی با کلیک کردن روی دکمه در جدول مورد نظرم سطری خالی ایجاد میکند.

اینم کدهاش:

 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" AllowSorting="True" AutoGenerateColumns="False" DataKeyNames="NewsID" DataSourceID="SqlDataSource1" OnRowCommand="GridView1_RowCommand"  >
            <Columns>
                <asp:TemplateField>
                    <ItemTemplate>
                        <table class="auto-style1">
                            <tr>
                                <td><asp:Button runat="server" ID="btnPloss" Text="ploss"    CommandName="AddToCart"
                                    CommandArgument="<%# ((GridViewRow) Container).RowIndex %>"/></td>
                                <td>
                                    <asp:Label ID="Label1" runat="server" Text='<%# Eval("Title") %>'></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td>&nbsp;</td>
                                <td>
                                    <asp:Label ID="Label2" runat="server" Text='<%# Eval("Abstrac") %>'></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td>&nbsp;</td>
                                <td>
                                    <asp:Label ID="Label3" runat="server" Text='<%# Eval("Contents") %>'></asp:Label>
                                </td>
                            </tr>
                            <tr>
                                <td>&nbsp;</td>
                                <td>
                                    <asp:Label ID="Label4" runat="server" Text='<%# Eval("Pic") %>'></asp:Label>
                                </td>
                            </tr>
                        </table>
                    </ItemTemplate>
                </asp:TemplateField>
            </Columns>
        </asp:GridView>
 protected void GridView1_RowCommand(object sender,
  GridViewCommandEventArgs e)
    {
        if (e.CommandName == "AddToCart")
        {
           
            
            // Retrieve the row index stored in the 
            // CommandArgument property.
            int index = Convert.ToInt32(e.CommandArgument);

            // Retrieve the row that contains the button 
            // from the Rows collection.
            GridViewRow row = GridView1.Rows[index];

            // Add code here to add the item to the shopping cart.
            string connectionString =
               System.Configuration.ConfigurationManager.ConnectionStrings["webdatabaseconnection"].ConnectionString;
            SqlConnection con = new SqlConnection(connectionString);
            string query = "insert into tbl_News(Title,Abstrac,Contents,Pic) values(@Title,@Abstrac,@Contents,@Pic)";
            SqlCommand cmd = new SqlCommand(query, con);
            cmd.Parameters.AddWithValue("@Title", row.Cells[0].Text);
            cmd.Parameters.AddWithValue("@Abstrac", row.Cells[0].Text);
            cmd.Parameters.AddWithValue("@Contents", row.Cells[0].Text);
            cmd.Parameters.AddWithValue("@Pic", row.Cells[0].Text);
            con.Open();
            if (cmd.ExecuteNonQuery() > 0)
            {
                Label5.Text = "succsssfully...";
            }

            con.Close();

        }

    }

با سپاس فراوان

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 3 شهریور 1396
  • 07:36
  cmd.Parameters.AddWithValue("@Title", row.Cells[0].Text);
           cmd.Parameters.AddWithValue("@Abstrac", row.Cells[1].Text);
           cmd.Parameters.AddWithValue("@Contents", row.Cells[2].Text);
           cmd.Parameters.AddWithValue("@Pic", row.Cells[3].Text);

کاربر سایت

elham7074

عضویت از 1396/05/30

  • جمعه 3 شهریور 1396
  • 09:55

با سلام

چنین کدی هم نوشتم ولی با این خطا مواجه میشم:

Specified argument was out of the range of valid values. Parameter name: index

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 3 شهریور 1396
  • 12:28

به تعداد ستونها گیر میده

ایندکس ها رو بر اساس ستونها تنظیم کنید

کاربر سایت

elham7074

عضویت از 1396/05/30

  • جمعه 3 شهریور 1396
  • 17:30

عذر میخام باید چطوری بر اساس ستون تنظیم کنم؟

با تشکر فراوان از پاسخ گویی سریعتان

کاربر سایت

ایمان مدائنی

عضویت از 1392/01/20

  • جمعه 3 شهریور 1396
  • 18:46

تعداد ستونهای گرید را بشمارید و در Cell قرار دهید

فقط دقت کنید شماره ها 0 شروع میشه

مثلا ستون اول Cell صفرم است

کاربر سایت

elham7074

عضویت از 1396/05/30

  • جمعه 3 شهریور 1396
  • 19:09

بازم همون خطا را میده

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)