首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ASP.NET TableCell OnSelected?

ASP.NET TableCell OnSelected?
EN

Stack Overflow用户
提问于 2015-05-11 23:50:37
回答 1查看 407关注 0票数 1

因此,我必须从数据库中创建一个项目列表,我通常使用一个GridView来实现这一点;然而,这个客户端要求当他们从列表中选择一个项目时,它会自动地在其他地方显示项目的图片。

因此,我创建了表,并从后面的代码中创建行来填充它。

这张桌子是:

代码语言:javascript
复制
<asp:Table ID="tblWatches" CssClass="table table-striped" runat="server" Width="50%" BorderStyle="Double" BorderColor="Black">
    <asp:TableRow ID="TableRow1" runat="server">
        <asp:TableCell ID="tblCell1">
            <asp:Label ID="code" runat="server" Text="code"></asp:Label>                
        </asp:TableCell>

        <asp:TableCell ID="tblCell2">
            <asp:Label ID="stock" runat="server" Text="stock"></asp:Label>                
        </asp:TableCell>

        <asp:TableCell ID="tblCell3">
            <asp:Label ID="purchased" runat="server" Text="purchased"></asp:Label>                
        </asp:TableCell>

        <asp:TableCell ID="tblCell4">
            <asp:Label ID="price" runat="server" Text="price"></asp:Label>                
        </asp:TableCell>
    </asp:TableRow>
</asp:Table> 

在后面的代码中,我创建如下行:

代码语言:javascript
复制
DataView view;
view = getWatches();

TableRow rowNew;
TableCell cellNew;
Label lblNew; 

for (int i = 0; i < view.Count; i++)
{       
    rowNew = new TableRow();
    tblWatches.Rows.Add(rowNew);

    cellNew = new TableCell();            
    lblNew = new Label();
    lblNew.Text = Convert.ToString(view[i][1]);
    cellNew.TabIndex = Convert.ToInt16(i + 1);  
    cellNew.Controls.Add(lblNew);
    rowNew.Cells.Add(cellNew);


    cellNew = new TableCell();
    lblNew = new Label();
    lblNew.Text = Convert.ToInt32(view[i][2]).ToString();   
    cellNew.Controls.Add(lblNew);
    rowNew.Cells.Add(cellNew);


    cellNew = new TableCell();
    lblNew = new Label();
    lblNew.Text = Convert.ToString(view[i][3]); 
    cellNew.Controls.Add(lblNew);
    rowNew.Cells.Add(cellNew);

    cellNew = new TableCell();
    lblNew = new Label();
    lblNew.Text = Convert.ToString(view[i][4]); 
    cellNew.Controls.Add(lblNew);
    rowNew.Cells.Add(cellNew);
}

效果很好。它创建了行,我可以用Tab键循环它们。问题是,现在我希望能够使用"onselect“事件,因此当客户端循环通过项时,图像框将被更新。但是TableCell没有这样的活动。有解决办法吗?这有可能吗?

问:为什么要骑自行车?他们希望列表看起来像Excel电子表格,在那里您可以用箭头键移动项目。我做的最近的一件事就是TabIndex。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-05-12 00:40:41

正如您所提到的,TableCell类型没有OnSelected事件,所以最简单的选择是通过将on事件绑定到表单元格,在jQuery的前端处理它:

代码语言:javascript
复制
$(function() {
    $("table[id$=tblWatches] tr td").on( "focus", function() {
        var code = $(this).parent("tr").find("td:first-child > label").text();
        // set img src here
    });
});

然后,根据图像文件存储的位置,使用产品代码在<img>上设置<img>路径。即"/images/products/" + code + ".jpg"或处理程序"/productimage.ashx?code=" + code

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30179461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档