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

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

کاربر سایت

moonfa1392

عضویت از 1394/08/17

مشکل در ویرایش گریدویو

  • پنجشنبه 22 بهمن 1394
  • 14:42
تشکر میکنم

سلام

این جدول دیتابیس من هست:

 

این هم محتوای وب فرم:

<div class="Alert">
                <p id="Alert" runat="server"></p>
            </div>
            <div class="LACNum3">
                <asp:GridView ID="CntGridView1" CssClass="mGrid" PagerStyle-CssClass="pgr" AlternatingRowStyle-CssClass ="alt" dir="rtl" runat="server" BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px" CellPadding="3" GridLines="Vertical" AllowPaging="True" OnPageIndexChanging="CntGridView1_PageIndexChanging" PageSize="8" AutoGenerateColumns="False" OnRowCommand="CntGridView1_RowCommand">
                    <AlternatingRowStyle BackColor="#DCDCDC" />
                    <Columns>
                        <asp:BoundField DataField="Cnt_ID" HeaderText="کد" />
                        <asp:BoundField DataField="Cnt_Title" HeaderText="عنوان مطلب" />
                        <asp:BoundField DataField="Cnt_DateReg" HeaderText="تاریخ درج" />
                        <asp:ButtonField HeaderText="حذف" CommandName="DeleteContent" Text="حذف" />
                        <asp:ButtonField HeaderText="ویرایش" CommandName="EditeContent" Text="ویرایش" />
                    </Columns>
                </asp:GridView>
            </div>
            <input type="hidden" id="ID" runat="server" />
            <div class="LACNum1">
                <div class="LACN1Right">
                    <span>عنوان مطلب : </span>
                </div>
                <div class="LACN1Left">
                    <input type="text" id="Title" runat="server" />
                </div>
            </div>
            <div class="LACNum3">
                <div class="LACN3Right">
                    <span>خلاصه مطلب : </span>
                </div>
                <div class="LACN3Left">
                    <CKEditor:CKEditorControl ID="SmallText" runat="server"></CKEditor:CKEditorControl>
                </div>
            </div>
            <div class="LACNum3">
                <div class="LACN3Right">
                    <span>ادامه مطلب : </span>
                </div>
                <div class="LACN3Left">
                    <CKEditor:CKEditorControl ID="LongText" runat="server"></CKEditor:CKEditorControl>
                </div>
            </div>
            <div class="LACNum1">
                <div class="LACN1Right">
                    <span>لینک عکس اول : </span>
                </div>
                <div class="LACN1Left">
                    <input type="text" id="SmallPic1" runat="server" />
                </div>
            </div>
            <div class="LACNum1">
                <div class="LACN1Right">
                    <span>لینک عکس دوم : </span>
                </div>
                <div class="LACN1Left">
                    <input type="text" id="SmallPic2" runat="server" />
                </div>
            </div>
            <div class="LACNum1">
                <div class="LACN1Right">
                    <span>لینک عکس سوم : </span>
                </div>
                <div class="LACN1Left">
                    <input type="text" id="SmallPic3" runat="server" />
                </div>
            </div>
            <div class="LACNum1">
                <div class="LACN1Right">
                    <span>لینک عکس چهارم : </span>
                </div>
                <div class="LACN1Left">
                    <input type="text" id="SmallPic4" runat="server" />
                </div>
            </div>
            <div class="LACNum2">
                <asp:Button ID="OK" runat="server" Text="ثبت" CssClass="OK" OnClick="OK_Click" />
            </div>

 

و این هم کدنویسی:

using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

public partial class Admin_Controls_ListContent : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Alert.InnerText = "ویرایش اطلاعات یا حذف مطالب";
        Gridbind();
    }
    public void Gridbind()
    {
        DAL run = new DAL();
        DataTable dt = new DataTable();
        string sqlText = "select * from Tbl_Content where cnt_subjectid=1";
        dt = run.ExecuteQuery(sqlText);
        CntGridView1.DataSource = dt;
        CntGridView1.DataBind();
    }
    protected void CntGridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
    {
        CntGridView1.PageIndex = e.NewPageIndex;
        Gridbind();
    }
    protected void CntGridView1_RowCommand(object sender, GridViewCommandEventArgs e)
    {
        if (e.CommandName == "DeleteContent")
        {
            int row = Convert.ToInt32(e.CommandArgument);
            int id = Convert.ToInt32(CntGridView1.Rows[row].Cells[0].Text);
            string st = string.Format("delete from Tbl_Content where Cnt_ID={0} ", id);
            DAL d1 = new DAL();
            d1.ExecNonQuery(st);
            Alert.InnerText = "با موفقیت حذف شد";
            Gridbind();
        }
        else
        {
            int row = Convert.ToInt32(e.CommandArgument);
            int id = Convert.ToInt32(CntGridView1.Rows[row].Cells[0].Text);
            string st = string.Format("select * from Tbl_Content where Cnt_ID={0} ", id);
            DAL d1 = new DAL();
            DataTable dt = new DataTable();
            dt = d1.ExecuteQuery(st);
            if (dt.Rows.Count > 0)
            {
                ID.Value = dt.Rows[0]["Cnt_ID"].ToString();
                Title.Value = dt.Rows[0]["Cnt_Title"].ToString();
                SmallText.Text = dt.Rows[0]["Cnt_SmallText"].ToString();
                LongText.Text = dt.Rows[0]["Cnt_LongText"].ToString();
                SmallPic1.Value = dt.Rows[0]["Cnt_SmallPic1"].ToString();
                SmallPic2.Value = dt.Rows[0]["Cnt_SmallPic2"].ToString();
                SmallPic3.Value = dt.Rows[0]["Cnt_SmallPic3"].ToString();
                SmallPic4.Value = dt.Rows[0]["Cnt_SmallPic4"].ToString();
            }
        }
    }
    protected void OK_Click(object sender, EventArgs e)
    {
        DAL d1 = new DAL();
        string st = string.Format("update Tbl_Content set Cnt_Title=N'{0}', Cnt_SmallText=N'{1}',Cnt_LongText=N'{2}',Cnt_SmallPic1=N'{3}',Cnt_SmallPic2=N'{4}',Cnt_SmallPic3=N'{5}',Cnt_SmallPic4=N'{6}',Cnt_ID={7}"
            , Title.Value, SmallText.Text, LongText.Text, SmallPic1.Value, SmallPic2.Value, SmallPic3.Value, SmallPic4.Value, ID.Value);

        d1.ExecNonQuery(st);
        Alert.InnerText = "با موفقیت ویرایش شد";
        ID.Value = "";
        Title.Value = "";
        SmallText.Text = "";
        LongText.Text = "";
        SmallPic1.Value = "";
        SmallPic2.Value = "";
        SmallPic3.Value = "";
        SmallPic4.Value = "";
        Gridbind();
    }
}

 

 

حذف که اعمال میشه و ویرایش رو هم میزنم فیلد ها محتوا رو میگیرن اما کدنویسی های OK_Click اعمال نمیشن. درواقع ارور هم نمیده فقط ویرایش نمیشه. دستور آپدیت هم که درسته نمیفهمم مشکل از کجاست

لطفا راهنمایی کنید ممنون

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

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

ایمان مدائنی

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

  • پنجشنبه 22 بهمن 1394
  • 15:05

یک تصویر از فرم قرار دهید تا بتونم کمکتون کنم

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • پنجشنبه 22 بهمن 1394
  • 15:12

این تصویر فرم خروجی هست استاد:

 

روی ویرایش میزنم محتوای دیتابیس داخل فرم ها میاد اما وقتی ثبت میکنم هیچی اعمال نمیشه فیلد ها هم خالی نمیشه درحالی که من توی کد نویسی مقادیر رو بعد از ثبت خالی کردم!

کاربر سایت

ایمان مدائنی

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

  • پنجشنبه 22 بهمن 1394
  • 15:20

BreakPoint بزارید ببینید اصلا وارد بدنه رویداد CntGridView1_RowCommand میشه یا نه

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • پنجشنبه 22 بهمن 1394
  • 15:45

استاد من breakPoint میذارم اما اصلا وارد ویژوال نمیشه وقتی ثبت میزنم :|

کاربر سایت

ایمان مدائنی

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

  • پنجشنبه 22 بهمن 1394
  • 16:23

یک ستون از نوع Template در گرید ایجاد کنید و یک linkButton داخلش قرار دهید و خاصیت CommandName را برابر DeleteContent و CommandArgument را برابر کد خط قرار دهید

به احتمال خیلی زیاد درست میشه

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • پنجشنبه 22 بهمن 1394
  • 18:23

یعنی باید اینجوری بنویسم؟

<asp:TemplateField HeaderText="حذف">
                            <ItemTemplate>
                                <asp:LinkButton ID="Delete" Text="حذف" CommandName="DeleteContent" CommandArgument="DeleteContent" runat="server" />
                            </ItemTemplate>
                        </asp:TemplateField>

 

اما خب حذف مشکلی نداشت ویرایش مشکل داشت!

کاربر سایت

ایمان مدائنی

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

  • پنجشنبه 22 بهمن 1394
  • 18:55
<asp:LinkButton ID="Delete" Text="حذف" CommandName="DeleteContent" CommandArgument='<%Eval("Cnt_ID")%>' runat="server" />

 

کاربر سایت

moonfa1392

عضویت از 1394/08/17

  • پنجشنبه 22 بهمن 1394
  • 19:20

من این رو گذاشتم استاد الان دیگه نه حذف کار میکنه نه ویرایش :|

برام جالبه دقیقا همون کد رو که نوشتم کپی کردم توی یه پروژه دیگه کار میکنه ولی توی این پروژه چیزی اعمال نمیشه!!!

یعنی ممکنه مشکل از بخش دیگه ای باشه؟

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

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

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

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