2015-04-03 4 views
1

У меня возникли проблемы с получением нового значения, которое вводится в поле шаблона текстового поля в моем GridView.Не удается получить новое значение из поля шаблона GridView

Вот моя разметка:

<asp:TemplateField HeaderText="username" SortExpression="username"> 
    <ItemTemplate> 
     <asp:Label ID="Label2" runat="server" Text='<%# Bind("username") %>'></asp:Label> 
    </ItemTemplate> 
    <EditItemTemplate> 
     <asp:TextBox ID="txtUserName" runat="server" Text='<%# Bind("username") %>'></asp:TextBox> 
    </EditItemTemplate> 
</asp:TemplateField> 

А вот как я пытаюсь получить новое значение, внутри обработчика событий RowCommand моего GridView:

string userName = ((TextBox)grdUserList.Rows[rowIndex].FindControl("txtUserName")).Text; 

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

Кто-нибудь знает, что мне не хватает? Заранее спасибо.

+0

Можете ли вы показать нам код, в котором вы связываете gridview? – Adil

+0

@Adil Привет. Я только что нашел решение для своей проблемы. Я искал и узнал, что GridView обновляется до начала процесса извлечения, потому что я переписывал GridView по методу Page_Load. Я исправил проблему, не отменяя gridview, когда это сообщение назад (или, по крайней мере, не до того, как я внес изменения). Спасибо за ваш ответ в любом случае :) – Rian

+0

Я думал, что вы привязываете GridView к обратной передаче и теряете вновь введенное значение. – Adil

ответ

0
use this code in gridview  

    <Columns> 

    <asp:TemplateField HeaderText="SrNo"> 
    <EditItemTemplate> 

    <asp:TextBox ID="txtsrno" runat="server" Text='<%#Eval("SrNo") %>'> 
    </asp:TextBox> 
    </EditItemTemplate> 


    <ItemTemplate> 
    <asp:Label ID="lblsrno" runat="server" Text='<%#Eval("SrNo") %>'> 
    </asp:Label> 

    </ItemTemplate> 
    </asp:TemplateField> 
    </Columns> 
1

Вы извлекаете новое значение в неправильное событие GridView. Вы должны добавить событие OnRowUpdating="grdUserList_RowUpdating" в свой элемент управления GridView, а затем получить новое значение TextBox.

OnRowUpdating события фонового кода:

protected void grdUserList_RowUpdating(object sender, GridViewUpdateEventArgs e) 
{ 
    string userName = ((TextBox)grdUserList.Rows[e.RowIndex].FindControl("txtUserName")).Text; 

    // Write your update query and logic over here. 
} 

Вы можете взять справку из here для дополнительных знаний.

Пожалуйста, дайте мне знать, если у вас есть вопросы.

1

Я только что нашел решение для своей проблемы. Я искал и узнал, что GridView обновляется до начала процесса извлечения, потому что я переписывал GridView по методу Page_Load. Я исправил проблему, не переустанавливая gridview, когда это сообщение назад (или, по крайней мере, не до того, как я внес изменения) с использованием метода IsPostback. Спасибо за ответ каждого :)

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