Ошибка выполнения Javascript: '__dopostback ' не определен
я использую представление сетки для отображения данных из базы данных с помощью asp.net c#. я включил параметры редактирования и удаления представления сетки, но как только я нажимаю на кнопку редактирования или удаления, система показывает ниже ошибку
Ошибка выполнения JavaScript: '__doPostBack ' не определен
Что я уже пробовал:
asp.net
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="serial_no" OnPageIndexChanging="GridView1_PageIndexChanging" OnRowCancelingEdit="GridView1_RowCancelingEdit" OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing" OnRowUpdating="GridView1_RowUpdating"> <columns> <asp:BoundField DataField="serial_no" HeaderText="serial_no" InsertVisible="False" ReadOnly="True" SortExpression="serial_no" /> <asp:BoundField DataField="internal_receiving" HeaderText="internal_receiving" SortExpression="internal_receiving" /> <asp:BoundField DataField="date" HeaderText="date" SortExpression="date" /> <asp:BoundField DataField="department" HeaderText="department" SortExpression="department" /> <asp:BoundField DataField="department_type" HeaderText="department_type" SortExpression="department_type" /> <asp:BoundField DataField="organization" HeaderText="organization" SortExpression="organization" /> <asp:BoundField DataField="organization_type" HeaderText="organization_type" SortExpression="organization_type" /> <asp:BoundField DataField="file_no" HeaderText="file_no" SortExpression="file_no" /> <asp:BoundField DataField="subject" HeaderText="subject" SortExpression="subject" /> <asp:BoundField DataField="file_name" HeaderText="file_name" SortExpression="file_name" /> <asp:BoundField DataField="status" HeaderText="status" SortExpression="status" /> <asp:CommandField ShowEditButton="true" /> <asp:CommandField ShowDeleteButton="true" />
с#
public partial class viewfile : System.Web.UI.Page { private SqlConnection conn = new SqlConnection("Data Source=.\\sqlexpress;Initial Catalog=college_education;User ID=sa;Password=system;"); protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { gvbind(); } } protected void gvbind() { conn.Open(); SqlCommand cmd = new SqlCommand("Select * from file_rec", conn); SqlDataAdapter da = new SqlDataAdapter(cmd); DataSet ds = new DataSet(); da.Fill(ds); conn.Close(); if (ds.Tables[0].Rows.Count > 0) { GridView1.DataSource = ds; GridView1.DataBind(); } else { ds.Tables[0].Rows.Add(ds.Tables[0].NewRow()); GridView1.DataSource = ds; GridView1.DataBind(); int columncount = GridView1.Rows[0].Cells.Count; GridView1.Rows[0].Cells.Clear(); GridView1.Rows[0].Cells.Add(new TableCell()); GridView1.Rows[0].Cells[0].ColumnSpan = columncount; GridView1.Rows[0].Cells[0].Text = "No Records Found"; } } protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e) { GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex]; Label lbldeleteid = (Label)row.FindControl("lblID"); conn.Open(); SqlCommand cmd = new SqlCommand("delete FROM file_rec where serial_no='" + Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString()) + "'", conn); cmd.ExecuteNonQuery(); conn.Close(); gvbind(); } protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditIndex = e.NewEditIndex; gvbind(); } protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { int serial_no = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Value.ToString()); GridViewRow row = (GridViewRow)GridView1.Rows[e.RowIndex]; Label lblID = (Label)row.FindControl("lblID"); //TextBox txtname=(TextBox)gr.cell[].control[]; TextBox textinternal_receiving = (TextBox)row.Cells[0].Controls[0]; TextBox textdate = (TextBox)row.Cells[1].Controls[0]; TextBox textdepartment = (TextBox)row.Cells[2].Controls[0]; TextBox textdepartment_type = (TextBox)row.Cells[3].Controls[0]; TextBox textorganization = (TextBox)row.Cells[4].Controls[0]; TextBox textorganization_type = (TextBox)row.Cells[5].Controls[0]; TextBox textfile_no = (TextBox)row.Cells[6].Controls[0]; TextBox textsubject = (TextBox)row.Cells[7].Controls[0]; TextBox textfile_name = (TextBox)row.Cells[8].Controls[0]; TextBox textstatus = (TextBox)row.Cells[9].Controls[0]; //TextBox textadd = (TextBox)row.FindControl("txtadd"); //TextBox textc = (TextBox)row.FindControl("txtc"); GridView1.EditIndex = -1; conn.Open(); //SqlCommand cmd = new SqlCommand("SELECT * FROM detail", conn); SqlCommand cmd = new SqlCommand("update file_rec set internal_receiving='" + textinternal_receiving + "',date='" + textdate + "',department='" + textdepartment + "',department_type='" + textdepartment_type + "',organization='" + textorganization + "',organization_type='" + textorganization_type + "',file_no='" + textfile_no + "',subject='" + textsubject + "',file_name='" + textfile_name + "',status='" + textstatus + "'where ='" + serial_no + "'", conn); cmd.ExecuteNonQuery(); conn.Close(); gvbind(); //GridView1.DataBind(); } protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) { GridView1.PageIndex = e.NewPageIndex; gvbind(); } protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e) { GridView1.EditIndex = -1; gvbind(); } protected void Button1_Click(object sender, EventArgs e) { Response.Redirect("adminview.aspx"); } }
[no name]
"JavaScript runtime error:", кроме приглашения атаки SQL-инъекции, я не вижу ни одного бита javascript нигде в вашей публикации. Но я не очень тщательно просматривал ваш неформатированный дамп кода
Member 12950401
я не использовал java script в коде, но я не знаю, почему эта ошибка отображается
Richard Deeming
Ваш код уязвим для SQL-инъекция[^]. НИКОГДА используйте конкатенацию строк для построения SQL-запроса. ВСЕГДА используйте параметризованный запрос.
Все, что вы хотели знать о SQL-инъекции (но боялись спросить) | Трой Хант[^]
Как я могу объяснить SQL-инъекцию без технического жаргона? | Обмен Стеками Информационной Безопасности[^]
Шпаргалка по параметризации запросов / OWASP[^]
Richard Deeming
Вы работаете на .NET 2.0 или 4.0? Была ошибка с файлами определения браузера, которая была исправлена в 2011 году, но вы можете пропустить патч:
Ошибка и исправление: ASP.NET не удается обнаружить IE10, вызывающий _doPostBack is undefined JavaScript error или поддерживать положение полосы прокрутки FF5[^]
Как уже упоминалось в комментариях, настройка Page.ClientTarget = "uplevel"
в Page_Init
событие также позволит избежать этой ошибки.
Member 12950401
я использую VS2010, V4. 0
Bryian Tan
С тех пор, как вы, парень, упомянули SQL-инъекцию. Я хочу, чтобы бросить в другой пример. Надеюсь, это поможет понять, как работает SQL-инъекция.
SQL-инъекции-и-межсайтовых сценариев