Это сводит меня с ума!Доступ к TextArea Inside GridView с помощью JQuery BlockUI
Я пытаюсь получить доступ к TextArea внутри элемента управления GridView. TextArea появляется, когда нажата кнопка на экране сетки. По какой-то причине значение textarea.value всегда содержит "".
<asp:GridView ID="gvCategories" runat="server" AutoGenerateColumns="false"
onrowcommand="gvCategories_RowCommand">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<input type="button" value="add comment" onclick="showCommentBox()" />
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<div id="commentBox" style="display:none">
<input type="button" value="move comment input box" onclick="moveComment()" />
<textarea id="txtComment" rows="10" cols="30">
</textarea>
</div>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
function moveComment() {
alert(document.getElementById("txtComment").value);
}
Я добавил этот код на стороне сервера, но TextBox всегда возвращает ""
protected void gvCategories_RowCommand(object sender, GridViewCommandEventArgs e)
{
var row = (GridViewRow) (e.CommandSource as LinkButton).NamingContainer;
var description = (row.FindControl("txtDescription") as TextBox).Text;
lblComment.Text = description;
}
Пробовал! Он ничего не возвращает! – azamsharp
Я думаю, это потому, что этот идентификатор не уникален, так как в вашей ItemTemplate есть одна строка. Вам нужно добавить уникальный префикс на основе идентификатора строки. – j0tt
Спасибо! На самом деле, моя основная цель - получить доступ к тексту TextBox на стороне сервера. Я заменил TextArea на TextBox, но когда возвращается postback, он возвращает «» в свойстве TextBox.Text: –
azamsharp