Asp.net gridview - PullRequest
       3

Asp.net gridview

1 голос
/ 03 сентября 2010

У меня есть текстовое поле внутри gridview. Мне нужно получить идентификатор текстового поля в JavaScript. Когда я использую вот так '<% = txtNewQty.ClientID%>'; это дает ошибку компиляции.

Ответы [ 3 ]

0 голосов
/ 03 сентября 2010

txtNewQty не существует на уровне страницы, и поэтому вы не сможете ссылаться на него таким образом. вам нужно будет что-то сделать, например, сгенерировать js на стороне сервера или перейти вниз от элемента gridview. опубликовать код и описание того, что вы хотите, чтобы произошло.

0 голосов
/ 03 сентября 2010

Вот плохой способ сделать это, так как он жестко закодирован в индекс столбца. Это работает, но должен быть лучший способ использования jQuery. К сожалению, я не эксперт в этом.

<script type="text/javascript">
    function Update(btn) {
        alert(btn.parentNode.parentNode.children[0].children[0].id);
    }
</script>
<asp:GridView ID="GridView1" runat="server">
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:TextBox ID="txtNewQtv" runat="server"></asp:TextBox>
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField>
            <ItemTemplate>
                <input type="button" onclick="Update(this)" value="Update" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>
0 голосов
/ 03 сентября 2010

Элементы управления внутри Gridview не являются членами страницы, они просто существуют в .aspx.Они будут повторяться в каждой строке, поэтому они динамически создаются.

Чтобы получить ссылку на элемент управления внутри строки Gridview, вы можете использовать FindControl

foreach(GridViewRow row in gridview.Rows)
{
    Textbox tb = row.FindControl("txtNewQtv") as Textbox;
    string id = tb.ClientID;
    //Generate your javascript here so it can be callable on the client
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...