2015-07-28 2 views
0

У меня есть функция продукта для добавления. после добавления их он будет просмотрен. наряду с функцией просмотра - ссылка удаления и обновления. он работает отлично. Когда я нажимаю на обновление, текстовые поля видны для редактирования. опять же, он отлично работает. но то, что я хочу сделать, это добавить к нему валидации. например, если значение должно содержать только число, то оно ограничивает любые символы этим обновлением. вот мой код:Как добавить проверки в текстовые поля в режиме редактирования/обновления данных?

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) 
    { 
     int userid = 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 textName = (TextBox)row.Cells[0].Controls[0]; 
     TextBox textDesc = (TextBox)row.Cells[1].Controls[0]; 
     TextBox textQuantity = (TextBox)row.Cells[3].Controls[0]; 
     TextBox textProductPrice = (TextBox)row.Cells[4].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 Products set ProductName='" + textName.Text + "',ProductDescription='" + textDesc.Text + "',ProductQuantity='" + textQuantity.Text + "',ProductPrice ='" + textProductPrice.Text + "'where ProductID='" + userid + "'", conn); 
     cmd.ExecuteNonQuery(); 
     conn.Close(); 
     gvbind(); 
     //GridView1.DataBind(); 
    } 

любые идеи о том, что я могу сделать, чтобы добавить проверки. причина этого заключается в том, что, когда я пытаюсь ввести, например, «ABC» в

TextBox textQuantity = (TextBox)row.Cells[3].Controls[0]; 

это дает мне ошибку, что она не может быть преобразован. пожалуйста помоги. благодаря!

+0

Пожалуйста, попробуйте маркировать с правильным языком ... – Jashaszun

ответ

0

Вы должны найти контроль на каждом из GridView строки Ниже приведен пример

TextBox textQuantity = (TextBox)GridView1.Rows[e.RowIndex].FindControl("txtBoxId"); 

if (string.IsNullOrEmpty(textQuantity .Text)) 
        { 
         //Validation failed 
         return; 
        } 
+0

, а затем? как я могу проверить sir? –

+0

просто проверьте, не является ли свойство Text пустым или нулевым. Теперь это будет ваше текстовое поле определенной строки сетки. Делай что хочешь. :) –

+0

Можете ли вы привести пример сэр? Например, я хочу проверить, разрешены ли только номера? –