저는 새로운 요구 사항이있어서 저에게 까다로 우며 지금까지는 파악할 수 없습니다. gridview를 사용하여 데이터를 삽입하고 업데이트합니다. 하나의 요구 사항 중 하나는 사용자가 수동으로 새 레코드를 추가 할 때 동일한 "거래 번호"가 존재하고 팝업을 표시하는 경우입니다. 이 팝업에는 이미 존재하는 레코드가 표시되어야합니다. 그들은 "사용", "폐기"또는 "확인"버튼 중 하나를 클릭 할 수 있어야합니다. '사용'버튼은 기본적으로 팝업을 닫고 사용자가 입력 한 텍스트 상자를 지 웁니다. '폐기'버튼은 존재하는 레코드를 삭제해야 사용자가 동일한 거래 번호를 사용하여 새 레코드를 삽입 할 수 있습니다. 그 이유는 거래 번호가 발생하는 "거래"에 대한 가장 고유 한 번호이기 때문입니다. 이전 응용 프로그램에서 새 응용 프로그램으로 내보내는 방식으로 복제본이 다운로드되고 처음에는 내보낼 때보 다 많은 정보가 포함 된 복제본이 다운로드됩니다. 그래서 사용자가 유지할 레코드를 선택해야한다는 요구 사항을 추가해야합니다. 이 모든 것이 당신에게 의미가 있기를 바랍니다. 나는 몇 가지 말린 것을 마셨다. 그러나 이것은 내가 현재 가지고있는 것이고 나는 붙어있다.jQuery를 사용하여 데이터베이스에있는 테이블에서 중복 항목을 삭제하십시오.
JQuery와 스크립트 :
<script type="text/javascript">
$(document).ready(function() {
function showpopup() {
$("#popup").dialog("open");
}
$("#popup").dialog({
modal: true,
width: 450,
autoOpen: false,
open: function (type, data) {
$(this).parent().appendTo("form");
}
});
$("#popup").each(function() {
var popup = $(this);
popup.parent().appendTo($("form:first"));
});
});
</script>
그리고 스크립트가 기존 레코드를 표시하는 또 다른있는 gridview이있는 호출 이제 부문
.. 지금<div class="popUpStyle" title="Duplicate Deal Found!" id="popup" style="display:none">
<asp:GridView ID="gvDealTracking" runat="server" Width="200px" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField HeaderText="Stock #">
<ItemTemplate>
<asp:Label ID="lblDupStockNumber" runat="server" Text='<%# Bind("StockNumber") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Deal #">
<ItemTemplate>
<asp:Label ID="lblDupDealNumber" runat="server" Text='<%# Bind("FIMAST") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="DealDate">
<ItemTemplate>
<asp:Label ID="lblDupDealDate" runat="server" Text='<%# Bind("DealDate") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Buyer">
<ItemTemplate>
<asp:Label ID="lblDupBuyer" runat="server" Text='<%# Bind("Buyer") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="GrossProfit">
<ItemTemplate>
<asp:Label ID="lblDupGrossProfit" runat="server" Text='<%# Bind("GrossProfit") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="AmtFinanced">
<ItemTemplate>
<asp:Label ID="lblDupAmtFinanced" runat="server" Text='<%# Bind("AmtFinanced") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="BankName">
<ItemTemplate>
<asp:Label ID="lblDupBankName" runat="server" Text='<%# Bind("BankName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
<br />
<asp:Button ID="btnUse" Text="Use" runat="server"></asp:Button>
<asp:Button ID="btnDiscard" Text="Discard" runat="server" OnClick="btnDiscard_Click" style="display:none"></asp:Button>
<asp:Label ID="lblMessagePop" runat="server"></asp:Label>
<br />
</div>
내가 시도하는 데 사용하는 코드 숨김
기존 레코드를 삭제하는 중입니다.protected void btnDiscard_Click(object sender, EventArgs e)
{
try
{
GridViewRow gvr = (GridViewRow)(sender as Control).Parent.Parent;
string dealnumber = ((Label)gvr.FindControl("lblDupDealNumber")).Text.Trim();
conn.Open();
SqlCommand cmdDeleteDup = new SqlCommand("DELETE * FROM Vehicle WHERE FIMAST = @FIMAST", conn);
cmdDeleteDup.Parameters.AddWithValue("@FIMAST", dealnumber);
cmdDeleteDup.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
lblMessagePop.Text = ex.ToString();
}
}
버튼 클릭이 실행되고 있지 않습니다. 이제 어떻게 작동시키는 지 알 수 있습니다. 나는 다른 결과를 시도했지만 결과는 같았습니다. 나는 레코드가 존재 하는지를 확인하는 판독기를 사용하고 행이 있으면이 팝업을 표시합니다. 그것은 완벽하게 표시됩니다, 그냥 내 버튼은 아무것도하지 않습니다. 이것이 적절한 방법이 아니라면 알려주십시오. 어떤 안내도 크게 감사드립니다!
이것은 내가 C#에서 팝업을 호출하는 방법입니다. 여기에는 행이 있는지 확인하는 판독기가 있으며, 그렇다면 기존 레코드가 팝업에 표시됩니다. 나는 이것을하기 위해 데이터 어댑터를 사용한다. 그런 다음 Page.ClientScript를 사용하여 팝업을 열고 결과를 표시합니다.
SqlDataReader rdr = null;
SqlCommand cmdCheckExisting = new SqlCommand("SELECT StockNumber, DealDate, Buyer FROM Vehicle WHERE FIMAST = '" + DealNumber + "';", conn);
rdr = cmdCheckExisting.ExecuteReader();
if (rdr.HasRows)
{
rdr.Close();
DataTable dt = new DataTable();
SqlDataAdapter cmdReturnExisting = new SqlDataAdapter("SELECT StockNumber, FIMAST, DealDate, Buyer, GrossProfit, AmtFinanced, BankName FROM Vehicle WHERE FIMAST = '" + DealNumber + "';", conn);
cmdReturnExisting.Fill(dt);
gvDealTracking.DataSource = dt;
gvDealTracking.DataBind();
conn.Close();
Page.ClientScript.RegisterStartupScript(this.GetType(), "Call my function", "showpopup();", true);
}
해당 버튼의 클릭 방법을 실행하려고합니까? –