<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Create a picker dynamically when button is clicked. in Windchill Customization</title>
    <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Create-a-picker-dynamically-when-button-is-clicked/m-p/1042761#M10722</link>
    <description>&lt;P&gt;When I click on the + button, a new row should get created, creating a new row is also working fine with the below code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;in the JSP page, I first created a table like below&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;table id="attachmentTable" style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;
	&amp;lt;!-- pickerCallback="BUEPMDocumentPickerCallBack"  --&amp;gt;
	&amp;lt;tbody id="rows"&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;td&amp;gt;
				&amp;lt;wctags:itemPicker 
					id="buObjectPicker" 
					label="Document Picker"
					showTypePicker="false" 
					objectType="WCTYPE|wt.epm.EPMDocument,WCTYPE|wt.doc.WTDocument" 
					componentId="buObjectPicker"
					pickerTitle="Object Picker" 
					displayAttribute="name,number"
					pickedAttributes="name,number,version,iteration,view"
					editable="true" 
					pickerCallback="BUEPMDocumentPickerCallBack"
					pickerTextBoxLength = "40"
					readOnlyPickerTextBox="true"
				/&amp;gt;
			&amp;lt;/td&amp;gt;
			&amp;lt;td style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;
				&amp;lt;select style="width:190px;" name="linkType" id = "linkType" &amp;gt;
					&amp;lt;option value="" disabled selected&amp;gt;(Please Select Document)&amp;lt;/option&amp;gt;
				&amp;lt;/select&amp;gt;
			&amp;lt;/td&amp;gt;
			&amp;lt;td style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;&amp;lt;button type="button" id="add-NE"&amp;gt;&amp;lt;img src="netmarkets/images/add16x16.gif"&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;td style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;&amp;lt;button type="button" id="delete-NE"&amp;gt;&amp;lt;img src="netmarkets/images/remove16x16.gif"&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		
		&amp;lt;!-- dynamically rows will get added here --&amp;gt;
	&amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;in the callback function, everytime Im getting&amp;nbsp;&lt;SPAN&gt;console.log(pickerID); as&amp;nbsp;buObjectPicker whenever I click on the picker.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Written the javascript as mentioned below whenever we click on add button and remove button.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;script&amp;gt;

jQuery(function() {
	  let attachmentIndex = 0;

	  const jQueryrows = jQuery("#rows");
	  const jQuerytable = jQuery("#attachmentTable");
	  const jQueryfirstRow = jQuerytable.find("tbody tr").first();
	  
	  console.log({jQueryfirstRow});

	  const templateRowHtml = jQueryfirstRow.prop("outerHTML");

	  jQuery("#attachmentTable").on("click", ".add-NE-clone, #add-NE", function(e) {
	    e.preventDefault();
	    addRow();
	  });

	  function addRow() {
	    attachmentIndex++;
	    const jQuerynewRow = jQuery(templateRowHtml);
	    const jQuerypicker = jQuerynewRow.find("#buObjectPicker");
	    console.log({jQuerypicker});
	    const pickerId = "buObjectPicker-" + attachmentIndex;
	    console.log({pickerId});
	    jQuerypicker.attr("id", pickerId).attr("componentId", pickerId).attr("name", pickerId);
	    jQueryrows.append({jQuerynewRow});
	    console.log({jQueryrows});
	  }

	  jQuery("#attachmentTable").on("click", ".delete-NE", function(e) {
	    e.preventDefault();
	    const jQueryrow = jQuery(this).closest("tr");
	    const totalRows = jQuery("#attachmentTable tbody tr").length;
	    if (totalRows &amp;gt; 1) {
	      jQueryrow.remove();
	    } else {
	      jQueryrow.find("input[type='text']").val("");
	      const jQueryselect = jQueryrow.find('select[name="linkType"]');
	      jQueryselect.empty().append('&amp;lt;option value="" disabled selected&amp;gt;(Please Select Document)&amp;lt;/option&amp;gt;');
	    }
	  });

	  function reinitPicker(cfg) {
	    console.log("Init picker with names:", cfg);
	  }
	});


&amp;lt;/script&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Manoj_Dokku4_0-1762844495816.png" style="width: 400px;"&gt;&lt;img src="https://www.ptcusercommunity.com/t5/image/serverpage/image-id/130946i84B0CC92734CB5CB/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Manoj_Dokku4_0-1762844495816.png" alt="Manoj_Dokku4_0-1762844495816.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;a href="https://www.ptcusercommunity.com/t5/user/viewprofilepage/user-id/241117"&gt;@HelesicPetr&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Please let me know if there is anything I miss over here.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 11 Nov 2025 07:13:18 GMT</pubDate>
    <dc:creator>Manoj_Dokku4</dc:creator>
    <dc:date>2025-11-11T07:13:18Z</dc:date>
    <item>
      <title>Create a picker dynamically when button is clicked.</title>
      <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Create-a-picker-dynamically-when-button-is-clicked/m-p/1042761#M10722</link>
      <description>&lt;P&gt;When I click on the + button, a new row should get created, creating a new row is also working fine with the below code.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;in the JSP page, I first created a table like below&lt;BR /&gt;&lt;BR /&gt;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;table id="attachmentTable" style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;
	&amp;lt;!-- pickerCallback="BUEPMDocumentPickerCallBack"  --&amp;gt;
	&amp;lt;tbody id="rows"&amp;gt;
		&amp;lt;tr&amp;gt;
			&amp;lt;td&amp;gt;
				&amp;lt;wctags:itemPicker 
					id="buObjectPicker" 
					label="Document Picker"
					showTypePicker="false" 
					objectType="WCTYPE|wt.epm.EPMDocument,WCTYPE|wt.doc.WTDocument" 
					componentId="buObjectPicker"
					pickerTitle="Object Picker" 
					displayAttribute="name,number"
					pickedAttributes="name,number,version,iteration,view"
					editable="true" 
					pickerCallback="BUEPMDocumentPickerCallBack"
					pickerTextBoxLength = "40"
					readOnlyPickerTextBox="true"
				/&amp;gt;
			&amp;lt;/td&amp;gt;
			&amp;lt;td style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;
				&amp;lt;select style="width:190px;" name="linkType" id = "linkType" &amp;gt;
					&amp;lt;option value="" disabled selected&amp;gt;(Please Select Document)&amp;lt;/option&amp;gt;
				&amp;lt;/select&amp;gt;
			&amp;lt;/td&amp;gt;
			&amp;lt;td style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;&amp;lt;button type="button" id="add-NE"&amp;gt;&amp;lt;img src="netmarkets/images/add16x16.gif"&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;/td&amp;gt;
			&amp;lt;td style="border-collapse: separate; border-spacing: 12px; font-family: Arial, Helvetica, sans-serif;"&amp;gt;&amp;lt;button type="button" id="delete-NE"&amp;gt;&amp;lt;img src="netmarkets/images/remove16x16.gif"&amp;gt;&amp;lt;/button&amp;gt;&amp;lt;/td&amp;gt;
		&amp;lt;/tr&amp;gt;
		
		&amp;lt;!-- dynamically rows will get added here --&amp;gt;
	&amp;lt;/tbody&amp;gt;
&amp;lt;/table&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;in the callback function, everytime Im getting&amp;nbsp;&lt;SPAN&gt;console.log(pickerID); as&amp;nbsp;buObjectPicker whenever I click on the picker.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Written the javascript as mentioned below whenever we click on add button and remove button.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;&amp;lt;script&amp;gt;

jQuery(function() {
	  let attachmentIndex = 0;

	  const jQueryrows = jQuery("#rows");
	  const jQuerytable = jQuery("#attachmentTable");
	  const jQueryfirstRow = jQuerytable.find("tbody tr").first();
	  
	  console.log({jQueryfirstRow});

	  const templateRowHtml = jQueryfirstRow.prop("outerHTML");

	  jQuery("#attachmentTable").on("click", ".add-NE-clone, #add-NE", function(e) {
	    e.preventDefault();
	    addRow();
	  });

	  function addRow() {
	    attachmentIndex++;
	    const jQuerynewRow = jQuery(templateRowHtml);
	    const jQuerypicker = jQuerynewRow.find("#buObjectPicker");
	    console.log({jQuerypicker});
	    const pickerId = "buObjectPicker-" + attachmentIndex;
	    console.log({pickerId});
	    jQuerypicker.attr("id", pickerId).attr("componentId", pickerId).attr("name", pickerId);
	    jQueryrows.append({jQuerynewRow});
	    console.log({jQueryrows});
	  }

	  jQuery("#attachmentTable").on("click", ".delete-NE", function(e) {
	    e.preventDefault();
	    const jQueryrow = jQuery(this).closest("tr");
	    const totalRows = jQuery("#attachmentTable tbody tr").length;
	    if (totalRows &amp;gt; 1) {
	      jQueryrow.remove();
	    } else {
	      jQueryrow.find("input[type='text']").val("");
	      const jQueryselect = jQueryrow.find('select[name="linkType"]');
	      jQueryselect.empty().append('&amp;lt;option value="" disabled selected&amp;gt;(Please Select Document)&amp;lt;/option&amp;gt;');
	    }
	  });

	  function reinitPicker(cfg) {
	    console.log("Init picker with names:", cfg);
	  }
	});


&amp;lt;/script&amp;gt;&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="Manoj_Dokku4_0-1762844495816.png" style="width: 400px;"&gt;&lt;img src="https://www.ptcusercommunity.com/t5/image/serverpage/image-id/130946i84B0CC92734CB5CB/image-size/medium?v=v2&amp;amp;px=400" role="button" title="Manoj_Dokku4_0-1762844495816.png" alt="Manoj_Dokku4_0-1762844495816.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;a href="https://www.ptcusercommunity.com/t5/user/viewprofilepage/user-id/241117"&gt;@HelesicPetr&lt;/a&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Please let me know if there is anything I miss over here.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 11 Nov 2025 07:13:18 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Windchill-Customization/Create-a-picker-dynamically-when-button-is-clicked/m-p/1042761#M10722</guid>
      <dc:creator>Manoj_Dokku4</dc:creator>
      <dc:date>2025-11-11T07:13:18Z</dc:date>
    </item>
    <item>
      <title>Re: Create a picker dynamically when button is clicked.</title>
      <link>https://www.ptcusercommunity.com/t5/Windchill-Customization/Create-a-picker-dynamically-when-button-is-clicked/m-p/1043830#M10741</link>
      <description>&lt;P&gt;Hi &lt;SPAN style="background: var(--ck-color-mention-background); color: var(--ck-color-mention-text);"&gt;&lt;a href="https://www.ptcusercommunity.com/t5/user/viewprofilepage/user-id/620967"&gt;@Manoj_Dokku4&lt;/a&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Thank you for your question.&amp;nbsp;&lt;BR /&gt;&lt;BR /&gt;Your post appears well documented but has not yet received any response. I am replying to raise awareness. Hopefully, another community member will be able to help.&lt;BR /&gt;&lt;BR /&gt;Also, feel free to add any additional information you think might be relevant.&amp;nbsp;&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;/P&gt;
&lt;P&gt;Best regards,&lt;/P&gt;</description>
      <pubDate>Tue, 18 Nov 2025 10:16:09 GMT</pubDate>
      <guid>https://www.ptcusercommunity.com/t5/Windchill-Customization/Create-a-picker-dynamically-when-button-is-clicked/m-p/1043830#M10741</guid>
      <dc:creator>Catalina</dc:creator>
      <dc:date>2025-11-18T10:16:09Z</dc:date>
    </item>
  </channel>
</rss>

