jayasree acharyya Ответов: 2

Доступ к ячейкам Gridview с помощью javascript


У меня есть элемент управления gridview, как показано ниже на странице asp, и он показывает изображение и имя пользователя из userdetails. теперь вопрос в том, как я могу получить имя пользователя, когда я нажимаю, когда я нажимаю на любое имя пользователя в gridview. Может быть, использовал javascript или c# код. Не используйте никаких командных полей или других элементов управления. просто нажмите на gridview и покажите имя пользователя в другом текстовом поле. пожалуйста, помогите мне как можно скорее. possible.is кто-нибудь может мне помочь?
<asp:gridview id="gv" showheader="false">
<columns>
  <templatefield>
        <itemtemplate>
            <asp:image runat="Server" imageurl='<%# Eval("pictpath") %>'/>
        </itemtemplate>
  </templatefield>
    <templatefield>
        <itemtemplate>
            <asp:Label runat="server" text='<%% Eval("username") %>'/>
        </itemtemplate>
    </templatefield>
</columns>
[Edit]добавлен блок кода [/Edit]

2 Ответов

Рейтинг:
1

S. M. Ahasan Habib

asp.net вид сетки визуализирует html-таблицу. Поэтому, когда вы используете javascript, вы должны использовать html-таблицу. Следующий код spinet поможет вам понять этот процесс.

<head runat="server">
    <title></title>
    <script src="jquery.min.js"></script>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <asp:gridview id="gv" showheader="false" runat="server" autogeneratecolumns="False" name="grdData" xmlns:asp="#unknown">
                <columns>
                    <asp:templatefield>
                        <itemtemplate>
                            <asp:image id="imgPicPath" runat="Server" alternatetext="Missing" imageurl="<%# Eval("pictpath") %>" />
                        </itemtemplate>
                    
                    <asp:templatefield>
                        <itemtemplate>
                            <asp:label id="lblUserName" runat="server" text="<%# Eval("username") %>" />
                        </itemtemplate>
                    
                     <asp:templatefield>
                        <itemtemplate>
                            <asp:label id="lblUserId" runat="server" text="<%# Eval("Id") %>" />
                        </itemtemplate>
                    
                </columns>            
        </div>
        <input type="button" id="btnShow" value="show" onclick="showGrid();"/>
    </form>
    </script>
</body>

< script type= "text/javascript">
function showGrid() {
           var tbl = $("[id$=gv]");
           var rows = tbl.find('tr');
           for (var index = 0; index < rows.length; index++) {
               var row = rows[index];

               var image = $(row).find("img");
               var userName = $(row).find("[id*=lblUserName]").text();
               var userId = $(row).find("[id*=lblUserId]").text();

               alert(userName + " - " +  userId);
           }
       }

< / script>
public partial class Index : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!base.IsPostBack)
            {
                gv.DataSource = GetData();
                gv.DataBind();
            }
        }

        IList<userinfo> GetData()
        {
            return new List<userinfo>
                {
                    new UserInfo{username = "A", pictpath = "a.jpg", Id = "111"},
                    new UserInfo{username = "B", pictpath = "b.jpg", Id = "222"},
                    new UserInfo{username = "C", pictpath = "c.jpg", Id = "333"},
                };
        }
    }
    public class  UserInfo
    {
        public string username { get; set; }
        public string pictpath { get; set; }
        public string Id { get; set; }
    }


Рейтинг:
1

abhaygulshan

как найти значение текстового поля внутри представления сетки с помощью javascript
в случае метки вышеприведенный код работает нормально
но когда я пытаюсь найти текстовое поле, оно не работает

можете ли вы предоставить мне решение для текстового поля

спасибо


Kats2512

зачем тебе понадобилось воскрешать такой старый вопрос? не могли бы вы вместо этого просто задать новый 1?