0

“我有 3 个按钮单击使用 java 脚本的按钮 div 将出现每个 div 有不同的按钮来保存一些数据在 asp.net 页面但它刷新整个页面我只想刷新特定的 div 并将数据保存到我的数据库"

按钮代码

<asp:Button ID="btnConse" runat="server" CssClass="Button" AlternateText="1" Text="Consequence" 
    OnClientClick="ToggleDiv('Consequence');return false;" />
<asp:Button ID="btnTask" runat="server" CssClass="Button" AlternateText="1" Text="Task" 
    OnClientClick="ToggleDiv('Task');return false;" />

<asp:Button ID="Button4" runat="server" CssClass="Button" AlternateText="1" Text="Incident" 
    OnClientClick="ToggleDiv('Incident');return false;" />

Java 脚本

<script type="text/javascript">
    function ToggleDiv(Flag) {
        if (Flag == "Consequence") {
            document.getElementById('divConsequence').style.display = 'block';
            document.getElementById('divTask').style.display = 'none';
            document.getElementById('divIncident').style.display = 'none';
        }
        else {
            if (Flag == "Task") {
                document.getElementById('divConsequence').style.display = 'none';
                document.getElementById('divTask').style.display = 'block';
                document.getElementById('divIncident').style.display = 'none';
            }
            else {
                if (Flag == "Incident") {
                    document.getElementById('divConsequence').style.display = 'none';
                    document.getElementById('divTask').style.display = 'none';
                    document.getElementById('divIncident').style.display = 'block';
                }
            }
        }
    }
</script>

分区

<div id="divConsequence" style="display: none;">
    <div class="TabTextHoriCenter">
        <asp:Label ID="Label28" runat="server" Text="div Consequence"></asp:Label>
        <asp:Button ID="btnSaveCon" runat="server" CssClass="Button" AlternateText="1" Text="Consequence" OnClick="btnSaveCon_Click"  />
    </div>
</div>
<div id="divTask" style="display: none;">
    <div class="TabTextHoriCenter">
        <asp:Label ID="Label33" runat="server" Text="div Task"></asp:Label>
        <asp:Button ID="btnSaveTask" runat="server" CssClass="Button" AlternateText="1" Text="Task" OnClick="btnSaveTask_Click"  />
    </div>
</div>
<div id="divIncident" style="display: none;">
    <div class="TabTextHoriCenter">
        <asp:Label ID="Label34" runat="server" Text="div incident"></asp:Label>
        <asp:Button ID="btnSaveInc" runat="server" CssClass="Button" AlternateText="1" Text="Incident" OnClick="btnSaveInc_Click"  />
    </div>
</div>

在这个 div 中有执行服务器操作的按钮

我怎样才能只刷新这个 div 而不是整个页面?

.cs 代码

   protected void btnAddFiles_Click(object sender, EventArgs e)
{
    if (fuFile.HasFile)
    {
        FileUpload Custom = new FileUpload();
        Custom = fuFile;
        if (Session["FileUpload"] != null)
        {
            FileUpload[] fuu = (FileUpload[])Session["FileUpload"];
            int cnt = 0;
            for (int k = 0; k < fuu.Length; k++)
            {
                if (fuu[k] != null)
                {
                    cnt++;
                }
                else
                {
                    break;
                }
            }
            fuu[cnt] = Custom;
            Session["FileUpload"] = fuu;
        }
        else
        {
            FileUpload[] fuu = new FileUpload[100];
            fuu[0] = Custom;
            Session["FileUpload"] = fuu;
        }
        if (flag == 1)
        {
            FilesAttached.Value = "";
            flag = 0;
        }

        FileInfo Finfo = new FileInfo(fuFile.PostedFile.FileName);

        string Ext = Finfo.Extension.ToLower();
        string f = fuFile.FileName.ToLower();
        string fname = Session["CompanyID"].ToString() + Session["MyRiskArea"].ToString();

        Session["time"] = String.Format(Global.yyyy_mmm_ddhh_mm_ss_tt.ToString(), DateTime.Now);
        int i = Convert.ToInt32(Ext.Length);
        String NewString = f.Remove(f.Length - i, i) + Session["time"].ToString();
        string str = NewString + Ext;
        fuFile.SaveAs(Server.MapPath(Global.AttachedFiles + "/" + str));
        ht.Add(Session["time"].ToString(), f);
        ht1.Add(Session["time"].ToString(), System.IO.Path.GetFullPath(fuFile.FileContent.ToString()));

        dlIncidents.DataSource = ht;
        dlIncidents.DataBind();
        fuFile.Focus();
        dlIncidents.Visible = true;
        //BindGrid();
    }
}
4

3 回答 3

0

对于将网页的某些部分提交到服务器,Ajax 是最好的方式。

“AJAX”避免了完整的页面提交。有关更多信息,请参阅以下链接... http://www.indiabix.com/technical/dotnet/asp-dot-net-ajax/

http://www.w3schools.com/ajax/ajax_intro.asp

http://www.tutorialspoint.com/asp.net/asp.net_ajax_control.htm

于 2013-10-15T08:06:52.517 回答
0
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
   <ContentTemplate>
      <div>
          <input type="submit" value="Continue" runat="server" />
      <div>
   </ContentTemplate>
</asp:UpdatePanel>

“更新面板”将确保在不刷新整个页面的情况下提交数据。

于 2013-10-15T11:10:56.307 回答
0

您是否尝试过使用带有脚本管理器的 Ajax 更新面板。将所有 div 内容放入更新面板并尝试一下。它应该工作

于 2013-10-15T07:54:12.563 回答