Gridviewcell для текстового поля не работает - PullRequest
0 голосов
/ 11 января 2011

У меня есть следующая работа в C # на моем Gridview под названием GridView1.Это работает, когда я помещаю его в onSelectedIndexChanged.

HostTextbox.Text = GridView1.SelectedRow.Cells[0].Text;

, но так как это отправляет обратно на сервер, я хочу избежать этого, потому что я буду делать это для ячеек [0] в ячейки [10].Итак, я посмотрел в Javascript.Я погуглил и нашел различные решения, и это то, что у меня пока "полуработало".

Мой C # выглядит так:

int myRowIdx = 0; // class variable 

protected void OnRowCreated(object sender, GridViewRowEventArgs e)  
    {  
        if (e.Row.RowType == DataControlRowType.DataRow)  
        {
            e.Row.Attributes.Add("ondbclick", "sample('" + myRowIdx.ToString() + "')");
        }  
        myRowIdx++;  
    }

В моем Javascript я вставил оповещенияскажи мне, где проблема устраивает.Это выглядит так:

   function sample(rowIn) {  
        alert("A");  
        var gViewID = '<%= GridView1.ClientID %>';  
        alert("B");  
        var gView = getElementById(gViewID);  
        alert("C");  
        var gViewRow = gView.rows[rowIn];  
        alert("D");  
        var gViewRowColumn = gViewRow.cells[0];  
        alert("E");  
        var displayCell = gViewRowColumn.innerText;  
        alert("F");  
        alert(displayCell);  
    }

B - последнее предупреждение, которое я вижу.Я не могу понять это.Я внимательно посмотрел на это и до сих пор безуспешно.Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 11 января 2011

Я не понимаю, что вы имеете в виду под «я хочу избежать этого, потому что я буду делать это для ячеек [0] для ячеек [10]». Вы можете сделать это для каждой ячейки в выбранной строке последовательно. Так что вам нужен только один постбэк.

В соответствии с вашими проблемами с Javascript, вы можете просто передать tr (GridViewRow) в качестве js-переменной в вашу функцию выборки. Поэтому вам нужно только передать this в качестве параметра:

 e.Row.Attributes.Add("ondbclick", "sample(this)");

и в вашей js-функции:

 function sample(tr) {  
      var gViewRowColumn = tr.cells[0];  
      var displayCell = gViewRowColumn.innerText;  
      alert(displayCell);  
  }
0 голосов
/ 11 января 2011

Использовать панель шаблона элемента для просмотра сетки. ex. http://msdn.microsoft.com/en-us/library/aa479353.aspx Используйте событие onrowcommand для получения значений.

like .. Event {if (e.commandname = "Edit") {

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...