第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何正確命名和訪問 Repeater 加載的元素 ID?

如何正確命名和訪問 Repeater 加載的元素 ID?

紫衣仙女 2023-05-11 15:55:15
我正在創(chuàng)建一個拖放計劃界面。用戶可以將項目從右側(cè)的選項卡列表拖到他們的日程表中。我使用中繼器從 SQL Server 加載工作人員。我目前正在使用大量 EVAL 來設置元素 ID。我想知道這是否是一種好的做法,或者是否有更好的方法來設置 ID?我開發(fā)的下一步是由工作人員將表中的計劃項目加載到每天,但我想在繼續(xù)之前設置和理解 ID。之后,我將嘗試在成功放置事件時觸發(fā) INSERT INTO 或 UPDATE(示例:UPDATE scheduleItems SET content = card text WHERE CrewID = xx AND date = xx)。這就是為什么我認為我的 ID 需要按順序排列。我是 ASP.NET Web 窗體開發(fā)的新手,所以如果我的方法有問題請告訴我!這是我的船員中繼器:<asp:Repeater ID="CrewRepeater" runat="server">    <ItemTemplate>        <div id="Crew<%# string.Format("{0}", Eval("CrewID"))%>" class="row">            <div class="board-layout">                <div class="left">                    <div class="board-text">                        Crew ID: <%# string.Format("{0}", Eval("CrewID"))%>                        <div id='CrewList<%# string.Format("{0}", Eval("CrewID"))%>' class="crew-board-list">                            <div id='Crew<%# string.Format("{0}", Eval("CrewID"))%>Employees' class="cardEmployee" data-toggle="modal" data-target="#DetailsModal" ondrop="dropIt(event)" ondragover="allowDrop(event)">                                <p><%# string.Format("{0}", Eval("Members"))%></p>                            </div>                            <div id='Crew<%# string.Format("{0}", Eval("CrewID"))%>Equipment' class="cardEquipment">                                <p><%# string.Format("{0}", Eval("Vehicles"))%></p>                            </div>                        </div>                    </div>                </div>
查看完整描述

1 回答

?
婷婷同學_

TA貢獻1844條經(jīng)驗 獲得超8個贊

好吧,從技術上講,RepeaterControl 將自行管理 ID,如果您嘗試連接更多唯一 ID 以使其更加獨特,那將是已經(jīng)解決的問題的開銷。


看看你有沒有Repeater這樣一個簡單的控件,里面有5個項目,我用一個簡化的Repeater來解釋一下:


<asp:Repeater runat="server" ID="MyRepeater">

    <ItemTemplate>

        <div runat="server" draggable="true" id="mySampleDiv"></div>

    </ItemTemplate>

</asp:Repeater>

然后,它將以這種方式管理 div,html就像這樣:


<div draggable="true" id="MyRepeater_mySampleDiv_0"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_1"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_2"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_3"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_4"></div>

在id每一個div的屬性中runat="server",它都有id的三部分來使它獨一無二,


家長身份證

控件的ID

和項目索引

這意味著,這個問題,你正在努力連接 ids 將是一個開銷,因為它總是唯一的。


現(xiàn)在,如果我們使用該屬性,從jquery/中的元素獲取船員 ID 的問題就非常簡單,因為我認為此信息不是那么敏感。javascriptdata-


做這樣的事情:


<asp:Repeater runat="server" ID="MyRepeater">

    <ItemTemplate>

        <div runat="server" draggable="true" id="mySampleDiv" class="mydiv" data-crewid='<%# Eval("CrewId") %>'></div>

    </ItemTemplate>

</asp:Repeater>

生成html的 withdata-crewid屬性將是這樣的:


<div draggable="true" id="MyRepeater_mySampleDiv_0" data-crewid="1000"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_1" data-crewid="1001"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_2" data-crewid="1002"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_3" data-crewid="1003"></div>

<div draggable="true" id="MyRepeater_mySampleDiv_4" data-crewid="1004"></div>

這樣,您就不需要管理元素的 ID,因為您主要關心的是獲取crewid特定元素何時被拖放或放下的信息。


而在 中jquery,你可以這樣得到它:


<script>

    $(document).ready(function(){

        $('.mydiv').on('dragstart', function(){

            var crewId = $(this).attr('data-crewid');

            // do something with the crewId

        });

    });

</script>

請注意,我已將事件與類綁定,而不是與 id 綁定,然后從屬性中取回 crewid data-。


到目前為止,很明顯 div 的 id 在我的情況下并不重要,因為我只需要 crewid (您的場景可能不同)或設置的任何 id,所以,而不是連接然后將 id 拆分為獲取 crewid,我將 id 存儲在一個data-屬性中。哪個可以很好地存儲您擁有的 ID。


閱讀有關屬性的詳細信息data-:https://developer.mozilla.org/en-US/docs/Learn/HTML/Howto/Use_data_attributes


更新


如果你想從中的轉(zhuǎn)發(fā)器中獲取項目索引jquery,你也可以將它保存在另一個data-屬性中,如下所示:


data-itemindex='<%# Container.ItemIndex %>'


查看完整回答
反對 回復 2023-05-11
  • 1 回答
  • 0 關注
  • 134 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號