jQuery를 사용하는 ASP.NET 응용 프로그램이 있습니다. 내 ASP.NET 응용 프로그램은 데이터베이스의 일부 값을 기반으로 일부 HyperLink 요소를 동적으로 생성합니다. 사용자가 이러한 HyperLink 요소 중 하나를 클릭하면 사용자가 HyperLink의 텍스트를 편집 할 수있는 jQuery 대화 상자를 표시하려고합니다. 나는이 부분을 일하고있다.ASP.NET + jQuery + 동적으로 생성 된 HyperLink 컨트롤
사용자가 "저장"버튼을 클릭하면 HyperLink 요소의 값을 읽고이를 데이터베이스에 다시 저장해야합니다. 현재 HyperLink 요소의 초기 값을 얻습니다. 그러나 수정 된 값을 얻을 수는 없습니다. 사용자가 제공 한 값을 얻으려면 어떻게해야합니까?
보고서
테스트 : 나는 내에서 .aspx 여기 .aspx.cs 코드를 제공 한
<div id="recommendDialog" title="Number">
<table border="0" cellpadding="0" cellspacing="0">
<tr><td>Number</td></tr>
<tr><td><input id="optionName" type="text" /></td></tr>
</table>
</div>
<asp:Button ID="saveButton" runat="server" Text="Save" OnClick="saveButton_Click" />
</div>
</form>
<script type="text/javascript">
var editingID = null;
$("#recommendDialog").dialog({
autoOpen: false,
height: 200,
modal: true,
buttons: {
Cancel: function() {
$(this).dialog('close');
},
'OK': function() {
var newValue = $("#optionName").val();
if (editingID != null) {
$(editingID).attr("name", newValue);
$(editingID).html(newValue);
}
$(this).dialog('close');
}
},
close: function() {
}
});
function update_Click(link) {
editingID = "#" + link.id;
$("#optionName").val(link.name);
$('#recommendDialog').dialog('open');
}
</script>
공공 부분 클래스 _Default :여기
내 코드 숨김입니다 System.Web.UI.Page { 보호 재정의 무효하는 OnInit (EventArgs입니다 전자) { base.OnInit (전자); AddHyperlinks(); }
protected void Page_Load(object sender, EventArgs e)
{}
protected void saveButton_Click(object sender, EventArgs e)
{
foreach (TableCell cell in reportTable.Rows[0].Cells)
{
HyperLink h = (HyperLink)(cell.Controls[0]);
string newValue = h.Attributes["name"];
// Save value to database here. newValue does not show
// changed values.
Console.WriteLine(newValue);
}
}
private void AddHyperlinks()
{
TableRow row = new TableRow();
for (int i = 1; i < 11; i++)
{
HyperLink hyperlink = new HyperLink();
hyperlink.NavigateUrl = "#";
hyperlink.Text = i.ToString();
hyperlink.Attributes.Add("id", "h" + i);
hyperlink.Attributes.Add("name", i.ToString());
hyperlink.Attributes.Add("onclick", "update_Click(this);");
AddLinkButtonToRow(hyperlink, row);
}
reportTable.Rows.Add(row);
}
private void AddLinkButtonToRow(HyperLink linkButton, TableRow row)
{
TableCell cell = new TableCell();
cell.Controls.Add(linkButton);
row.Cells.Add(cell);
}
}
데이터베이스 업데이트를 수행하는 부분이 누락 되었습니까? jquery ajax를 통해이 작업을 수행해야합니다. – ScottE
그런데 Dave : 입력 필드 (TextBox)를 사용하면 코드가 훨씬 더 깨끗해 보입니다. 마치 10 개의 문자열 만 읽는 것처럼 보입니다. – Kobi