2013-04-11 2 views
0

Сторонние программисты, я пытаюсь получить значения в последнем столбце Gridview (который был связан с некоторой базой данных SQL), а затем заменить содержимое этой ячейки сгенерированной гиперссылкой в ​​зависимости от того, что значение этой ячейки может быть. Мой код до сих пор:Получить значение ячейки в Gridview

protected void Page_Load(object sender, EventArgs e) 
{ 
    /* Load the Required Data */ 
    StrCommand="SELECT "+ Request.QueryString["Cols"] + " FROM " + Request.QueryString["Category"]; 
    SqlConnection myConnection = new SqlConnection(); 
    myConnection.ConnectionString = "Data Source=localhost;" + "Initial Catalog=Categories; Integrated Security=SSPI"; 
    SqlCommand myCommand = new SqlCommand(StrCommand, myConnection); 
    myConnection.Open(); 
    SqlDataReader DataReader1 = myCommand.ExecuteReader(); 
    ProductList.DataSource = DataReader1; 
    ProductList.DataBind(); 
    myConnection.Close(); 

    /* Post-binding modifications are now applied to the Grid View */ 

    /* Generate the column containing the add-to-cart buttons */ 
    for (int j = 0; j < ProductList.Rows.Count-1; j++) 
    { 
     int id_holder = int.Parse(ProductList.Rows[j].Cells[ProductList.Columns.Count-1].Text); 

    } 


} 

К сожалению, этот код не удается, и я получаю эту ошибку:

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

Любые идеи оценили,
Leo

+0

какое событие вы с этим справляетесь? –

+1

где u r, пишущий этот код ???, пишу его в rowdatabound –

+0

В чем это происходит: 'Строки [j]' или 'Ячейки [ProductList.Columns.Count-1]'? –

ответ

0

Я нашел ответ, когда для свойства GridView.AutoGenerateColumns установлено значение «True» ProductList.Columns.Count не обновляется, оставляя его при значении «0». Альтернативой является использование: ProductList.Rows [0] .Cells.Count. В противном случае мы можем установить AutoGenerateColumns в false и создать собственный шаблон столбца.

Cheers.

2

Если сбой индекса из диапазона, изменить формулу на:

for (int j = 0; j < ProductList.Rows.Count - 1; j++) 

Поскольку массивы основаны на нулевом значении, а число не равно.

+3

Это неправильно, условие: 'j V4Vendetta

Смежные вопросы